栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python for循环是否通过引用起作用?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python for循环是否通过引用起作用?

不,Python中的变量 不是 指针。

它们而是在堆上引用对象,并且分配给变量不会更改引用的对象,但会更改 变量 。变量和对象就像绑在气球上的标签一样。分配会将标签重新绑定到其他气球。

请参阅我先前的答案,以进一步了解气球和标签的想法。

也就是说,某些对象 类型 实现特定的就地添加行为。如果对象是 可变的 (气球本身可以更改),则就地添加 可以 解释为变异而不是赋值。

因此,对于整数,

item += 1
实际上与
item = item + 1
因为整数是不可变的相同。您 必须
创建一个新的整数对象,并将
item
标签绑定到该新对象。

另一方面,列表 可变的,

lst += [other, items]
被实现为a
lst.__iadd__([other,items])
并且会更改
lst
气球本身。分配仍在进行,但这是同一对象的 重新
分配,因为该
.__iadd__()
方法只是返回
self
而不是新对象。我们最终将标签重新绑到同一个气球上。

该循环仅为您提供每次迭代时列表中下一项的引用。它不允许您更改原始列表本身(这只是另一组气球标签);相反,它给您包含的每个项目一个新标签。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号