Python中嵌套对象的处理
我在用Python写一个程序。我有一个类A,它里面有一个变量v,这个变量是另一个类B的实例:
class A:
def __init__(self):
self.v = B()
类B的定义是这样的:
class B:
def __init__(self):
self.list = [1,2,3]
def function(self):
self.list[2] = 1
我创建了一个实例x=A(),把它放进一个列表g里(g=[x]),然后通过打印g[0].v.function()来改变x.v中的一个变量。但是,当我让电脑打印g[0].v.list时,它输出的是[1,2,3]而不是[1,2,1]。这可能是什么原因呢?
谢谢。
1 个回答
4
对我来说可以正常工作:
class A:
def __init__(self):
self.v = B()
class B:
def __init__(self):
self.list = [1,2,3]
def function(self):
self.list[2] = 1
x = A()
g = [x]
print g[0].v.function()
print g[0].v.list
输出结果:
None
[1, 2, 1]