freeCodeCamp/guide/chinese/python/mutability-and-variable-ass.../index.md

2.5 KiB
Raw Blame History

title localeTitle
Python Mutability and Variable Assignments Python可变性和变量赋值

每个对象都有一个标识,一个类型和一个值。对象的标识一旦创建就永远不会改变;你可以把它想象成对象在内存中的地址。 资源

创建object ,无法更改类型和标识。对象的值是否可以在创建后更改,确定对象是可变的(可以更改)还是不可变的(不能更改)。

到目前为止,我们已经了解了几种类型的对象及其子类: string s和数字整数浮点复数和布尔对象。所有这些都是不可变对象。

这个概念最初可能会让人感到困惑,因为如果你不能修改它,对象有什么好处。使这些对象可用的是分配和重新分配变量的能力。函数和运算符可以返回可以分配给变量的新对象。

使用返回对象标识的内置id函数 ,我们可以看到它是如何工作的。

以下是一些要记住的事项:

  • 分配变量并不意味着_变量_是_对象_ 。我们使用了非常具体的语言指出_赋值语句_ 名称 (标识符) 绑定到_对象_ 。可以重新分配变量:

`蟒蛇

a = 1将a绑定到对象。
ID
140355241530152
a = 2将a重新绑定到另一个对象。
ID
140355241530128
`

  • 将两个不同的变量分配给具有相同值的_不可变对象_可能会导致不保证它们绑定到同一个_对象_

`蟒蛇

a = 1
b = 1
ID
140355241530152
idb在这种情况下a和b绑定到同一个对象。
140355241530152
`

  • 将两个不同的变量分配给具有不同值的可变_对象_将始终导致它们绑定到不同的_对象_

`蟒蛇

a = 1
b = 2
ID
140355241530152
idb#a和b绑定到不同的对象。
140355241530128
`

  • 重新分配变量不会更改原始对象,而是将它们绑定到不同的对象。

`蟒蛇

a = 1
b = 1
ID
140355241530152
IDb
140355241530152
a = 2
ida#a被反弹到另一个对象。
140355241530128
idb#b仍然绑定到原始对象。
140355241530152
`