提问人:MRoot 提问时间:6/14/2023 更新时间:6/14/2023 访问量:28
在另一个类中实例化的类 - 初学者问题 [重复]
Class instantiated within another class - Beginner question [duplicate]
问:
对不起,对于非常基本的问题,我从几天开始接触 Python。 我查看了其他一些线程,虽然我理解为什么会发生这种情况,但我不确定我是否理解了可能的解决方案。
我在这里附上一个简短的代码片段示例:
class Class_one:
name = "First"
class Class_two:
new_object = Class_one()
instance_one = Class_two()
instance_one.new_object.name = "Second"
instance_two = Class_two()
instance_two.new_object.name = "Third"
print(instance_one.new_object.name)
print(instance_two.new_object.name)
我看到Class_one只被实例化了一次,尽管我试图将两个不同的实例与instance_one关联,另一个与instance_two关联。
目标是将“第二”和“第三”作为两个打印指令的结果,而我得到“第三”和“第三”。
在保持两类结构的情况下,获得该结果的正确方法是什么?
答:
1赞
matszwecja
6/14/2023
#1
您使用的语法用于类变量,即在同一类的实例之间共享的变量。为了声明实例变量,您需要引用实例来声明,例如使用实例方法的参数:self
class Class_one:
name = "First"
class Class_two:
def __init__(self):
self.new_object = Class_one()
instance_one = Class_two()
instance_one.new_object.name = "Second"
instance_two = Class_two()
instance_two.new_object.name = "Third"
print(instance_one.new_object.name)
print(instance_two.new_object.name)
评论
0赞
MRoot
6/14/2023
非常感谢你,这是一件愚蠢的事情,但我无法理解。现在很清楚了。赞赏!
上一个:如何从异步调用返回响应?
下一个:更改嵌套类中的属性值
评论