Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我可以问内心世界有多深_Python - Fatal编程技术网

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

我正在学习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 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
仍然是同一对象的原因。