Python中嵌套对象的处理

0 投票
1 回答
15004 浏览
提问于 2025-04-17 14:06

我在用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]

撰写回答