Я хочу использовать значения в классе B (self.array_B) и назначить их переменным (array_A) в классе A при выполнении функции «step» в классе A. Однако после того, как я изменю значения переменной (array_A) на Нули в классе A, значения (self.array_B) также изменяются на нули, что очень неудобно. (self.array_B) должен оставаться неизменным после того, как я изменю значения переменной в классе A. Есть ли способ решить эту проблему?
import numpy as np
class A:
def __init__(self):
self.B = B()
def step(self):
print("array_B:", self.B.array_B)
array_A = np.zeros((2, 2))
array_A = self.B.array_B
print("array_A:", array_A)
for i in range(2):
for j in range(2):
array_A[i][j] = 0
print("------------------")
print("after changing variable value:array_B:", self.B.array_B)
print("after changing variable value:array_A:", array_A)
return "done"
class B:
def __init__(self):
self.array_B = [[1, 2], [3, 4]]
def test_main():
env = A()
s = env.step()
print(s)
if __name__ == "__main__":
test_main()
выход:
array_B: [[1, 2], [3, 4]]
array_A: [[1, 2], [3, 4]]
------------------
after changing variable value:array_B: [[0, 0], [0, 0]]
after changing variable value:array_A: [[0, 0], [0, 0]]
done