我正在阅读python的语言参考,在第3章“数据模型”中,据说每个对象都有一个标识,类型和值。我理解的身份。我猜的类型意味着__class__
引用的对象(如果错误,请更正)。我猜这个值意味着对象的属性,或者换句话说,对象命名空间中的名称引用的对象。这是对的吗?
答案 0 :(得分:3)
是的,这是正确的。大多数时候,只要将价值视为对象本身。
您还可以使用“state”一词来描述对象值;对于可变对象,值可以更改,但通常对象,它的类型和标识不会更改。
一些例子:
2048
是一个int
,其整数值为2048. int
是一个不可变类型,因此该值永远不会改变。您通常使用不同的值创建相同类型的 new 对象; 2048 + 1
生成一个新的int
对象,其值为2049,具有新标识。[42]
是一个列表,其中包含对另一个对象的单个引用。您可以更改内容,更改列表值。但身份和类型不会改变。__class__
是可写的,允许您动态更改类型。这很少需要,但存在选项。