C ++程序员在这里使用Python。调用方法U
时,方法do_something()
的输入[1.0]
从[0.0]
变为clear()
。调试清楚表明,行self.current *= 0
是罪魁祸首。但是,我无法解释原因。我确信它与变量U0
用于初始化成员变量current
,并用作方法do_something
的列表/参数中的第一个元素有关。 。
import numpy as np
class blah:
def __init__(self,U0):
self.current = np.expand_dims(U0,-1)
def clear(self):
self.current *= 0 # <- culprit
def do_something(self,U):
print(U)
self.clear()
print(U)
if __name__ == "__main__":
U0 = np.ones(1)
b = blah(U0)
b.do_something([U0])