《流畅的Python》中,如何理解Python对象的引用、可变性与垃圾回收机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4682个文字,预计阅读时间需要19分钟。
变量是引用+a=[1, 2, 3];b=a.append(4) + [1, 2, 3, 4];a和b引用同一列表。标识、相等性和别名:每个变量都有标识、类型和值。对象一旦创建,其标识就不会变;你可以把标识理解为对对象的称呼。
变量是引用
>>> a = [1, 2, 3]>>> b = a
>>> a.append(4)
>>> b
[1, 2, 3, 4]
a和b引用同一个列表。
标识、相等性和别名
每个变量都有标识、类型和值。对象一旦创建,它的标识绝不会
变;你可以把标识理解为对象在内存中的地址。is 运算符比较两个
对象的标识;id()函数返回对象标识的整数表示。
在==和is之间选择
== 运算符比较两个对象的值(对象中保存的数据),而is 比较对象的
标识(即判定是否是同一个对象)。
本文共计4682个文字,预计阅读时间需要19分钟。
变量是引用+a=[1, 2, 3];b=a.append(4) + [1, 2, 3, 4];a和b引用同一列表。标识、相等性和别名:每个变量都有标识、类型和值。对象一旦创建,其标识就不会变;你可以把标识理解为对对象的称呼。
变量是引用
>>> a = [1, 2, 3]>>> b = a
>>> a.append(4)
>>> b
[1, 2, 3, 4]
a和b引用同一个列表。
标识、相等性和别名
每个变量都有标识、类型和值。对象一旦创建,它的标识绝不会
变;你可以把标识理解为对象在内存中的地址。is 运算符比较两个
对象的标识;id()函数返回对象标识的整数表示。
在==和is之间选择
== 运算符比较两个对象的值(对象中保存的数据),而is 比较对象的
标识(即判定是否是同一个对象)。

