【发布时间】:2019-01-23 04:51:37
【问题描述】:
我想使用 B 类(self.array_B)中的值并将它们分配给 A 类中的变量(array_A),同时在 A 类中执行“step”函数。但是,在我将变量值(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
【问题讨论】:
标签: python-3.x copy deep-copy