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])