gpt4 book ai didi

python - 理解Python中的对象关系(困惑)

转载 作者:行者123 更新时间:2023-11-30 23:30:10 25 4
gpt4 key购买 nike

我对这个例子有点困惑:

>>> class A:
... foo = []
>>> a, b = A(), A()
>>> a
<__main__.A instance at 0x0000000002296A88>
>>> b
<__main__.A instance at 0x0000000002296F88>
>>> a.foo.append(5)
>>> a.foo
[5]
>>> b.foo
[5]

1) python如何连接两个不同的实例?

2) 实例是否引用类 A()foo附加值后的属性?

但是当我添加__init__时方法,事情看起来有所不同:

>>> class A:
... def __init__(self):
... self.foo = []
...
>>> a, b = A(), A()
>>> a
<__main__.A instance at 0x00000000021EC508>
>>> b
<__main__.A instance at 0x0000000002296F88>
>>> a.foo.append(5)
>>> a.foo
[5]
>>> b.foo
[]

3)__init__有什么魔力? ?

最佳答案

在第一种情况下,foo = [] 是在类定义时完成的,因此单个列表与相关联>,而不是实例。

在第二种情况下,self.foo = []是在实例初始化时完成的(这就是__init__ -实例初始化),因此一个单独的列表与每个实例相关联。

关于python - 理解Python中的对象关系(困惑),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20792049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com