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

Python的引用传递[重复]

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

Python的引用传递[重复]

在第一个示例中,由于 interning
,名称

a
b
都“引用”同一对象。赋值语句产生一个具有相同整数的整数,这仅是因为该赋值语句重用了一个已经存在于内存中的预先存在的对象。这不是整数的可靠行为:
__
id


>>> a = 257>>> b = 257>>> id(a), id(b)(30610608, 30610728)

如上所示,如果选择足够大的整数,则其行为将与第二个示例中的浮点数相同。而且,在Python语言中,小整数的插入始终是 可选
的,这恰好是CPython实现的细节:这是一种性能优化,旨在避免创建新对象的开销。我们可以通过缓存常用的整数实例来加快处理速度,但代价是Python解释器的内存占用量更大。

在处理Python时,请不要考虑“引用”和“值”,适用于C的模型在这里并不能很好地工作。而是考虑“名称”和“对象”。

上图说明了您的第三个示例。

2
是一个对象,
a
并且
b
是名称。我们可以使用不同的名称指向同一对象。对象可以不带任何名称存在。

分配 变量仅 附加一个名称标签 。和 删除 一个变量只 删除名签
。如果您牢记这个主意,那么Python对象模型将再也不会令您感到惊讶。



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

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

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