Python 我可以问内心世界有多深
我正在学习Python,但我不能理解两件事。Python 我可以问内心世界有多深,python,Python,我正在学习Python,但我不能理解两件事。 我有这个密码 class Test: def __init__(self, field): self.field = field t = Test("field") t.field_2 = t print(t.field_2.field_2.field_2.field_2.field) 在最后一行中,我不明白我能走多深。 正如我所理解的那样,记忆不是无限的——我不能总是去回忆。事实上,你可以。为了证明这一点: while
我有这个密码
class Test:
def __init__(self, field):
self.field = field
t = Test("field")
t.field_2 = t
print(t.field_2.field_2.field_2.field_2.field)
在最后一行中,我不明白我能走多深。正如我所理解的那样,记忆不是无限的——我不能总是去回忆。事实上,你可以。为了证明这一点:
while t != None:
t = t.field_2
print(t.field)
这将永远持续下去
重复使用同一个对象,这样内存就不会增长<代码>字段2只存储指向对象(内存中的地址)的指针,而不是对象本身,这就是它工作的原因。它就像一个圆圈。您可以在有限的空间中创建无限多个循环。您不是在“深入”而是在循环中。Python引用不是副本
t.field_2=t
创建对t
的引用,因此t.field_2是t
是真的,这就是t.field_2.field_2
仍然是同一对象的原因。