您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

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

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

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

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

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

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

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

python 2022/1/1 18:51:37 有395人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶