我需要使用一些浮点型变量用于两个目的: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__
。它允许你拨打[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)
PS。我已将您的增量缩短为+ = 1