与python对象相关的值意味着什么?

时间:2017-07-25 09:23:11

标签: python

我正在阅读python的语言参考,在第3章“数据模型”中,据说每个对象都有一个标识,类型和值。我理解的身份。我猜的类型意味着__class__引用的对象(如果错误,请更正)。我猜这个值意味着对象的属性,或者换句话说,对象命名空间中的名称引用的对象。这是对的吗?

1 个答案:

答案 0 :(得分:3)

是的,这是正确的。大多数时候,只要将价值视为对象本身。

您还可以使用“state”一词来描述对象值;对于可变对象,值可以更改,但通常对象,它的类型和标识不会更改。

一些例子:

  • 2048是一个int,其整数值为2048. int是一个不可变类型,因此该值永远不会改变。您通常使用不同的值创建相同类型的 new 对象; 2048 + 1生成一个新的int对象,其值为2049,具有新标识。
  • [42]是一个列表,其中包含对另一个对象的单个引用。您可以更改内容,更改列表值。但身份和类型不会改变。
  • 对于Python类的实例,__class__是可写的,允许您动态更改类型。这很少需要,但存在选项。