运维咖啡吧

追求技术的道路上,我从不曾停下脚步

python中的引用传递

以下内容来源于QQ群,出于隐私考虑,提问者昵称用“网友9527”代替


网友9527 17:32:34

>>> a = [1, 2]
>>>
>>> a[1] = a
>>>
>>> print(a[1])
[1, [...]]  

有没有大佬释义下这个结果为啥是[1, [...]]

ops-coffee.cn 17:59:05

@网友9527 这个问题有意思,我怕给你解释不清楚,你自己查一下python的引导传递吧

网友9527 17:59:20

多谢

ops-coffee.cn 18:02:25

简单来说这里实际上传递的不是值,而是内存地址,这样就导致了最终结果里边是一个无限循环

ops-coffee.cn 18:09:54

>>> a = [1, 2]
>>>
>>> id(a)
1332642909640
>>>
>>> id(a[1])
1578131712
>>>
>>>a[1] = a
>>>id(a[1])
1332642909640

ops-coffee.cn 18:10:04

这个应该看得更清晰一点