gpt4 book ai didi

python - Python 3 中变量的简单表达式

转载 作者:行者123 更新时间:2023-12-04 16:59:55 25 4
gpt4 key购买 nike

我需要使用一些浮点型变量有两个目的:1. 使用它的值来计算某些函数,2. 更改这些变量本身的值。我知道一般怎么做,但我需要为我的浮点型变量使用简单的简短表示法。在下面的简单示例中,我添加了两个数字,我的目标是能够在下面的示例中编写像 'f(a, i)' 而不是 'a.vals[a.define_index[i]]' 的 smth。我需要从“=”的左侧和“=”的右侧编写简单的符号:

import numpy as np
class SomeClass(object):
def __init__(self):
self.vals=np.ones(10)
self.define_index=[]
for i in range(10):
self.define_index.append(10-1-i)
a=SomeClass()
for i in range(10):
a.vals[a.define_index[i]]=a.vals[a.define_index[i]]+1
print('sums =', a.vals)

最佳答案

看来你要实现 __getitem____setitem__适合您的类型。它允许您调用 a[i]。这样做会让你的类型看起来像一个列表,所以你可能想要实现 __iter__同样,您可以使用 for 循环对其进行迭代。

import numpy as np
class SomeClass(object):
def __init__(self):
self.vals=np.ones(10)
self.define_index=[]
for i in range(10):
self.define_index.append(10-1-i)

def __getitem__(self, i):
return self.vals[self.define_index[i]]

def __setitem__(self, i, value):
self.vals[self.define_index[i]] = value

def __iter__(self):
for i in self.define_index:
yield self.vals[i]

a=SomeClass()
for i in range(10):
a[i] += 1
print('sums =', a.vals)

for val in a: # iterate over data, hiding define_index
print(val)

附注。我已将您的增量缩短为 += 1

关于python - Python 3 中变量的简单表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47910573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com