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

68 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Python Mutability and Variable Assignments
localeTitle: Python可变性和变量赋值
---
> 每个对象都有一个标识,一个类型和一个值。对象的标识一旦创建就永远不会改变;你可以把它想象成对象在内存中的地址。 [资源](https://docs.python.org/3/reference/datamodel.html#data-model)
创建`object` ,无法更改类型和标识。对象的值是否可以在创建后更改,确定对象是可变的(可以更改)还是不可变的(不能更改)。
到目前为止,我们已经了解了几种类型的对象及其子类: `string` s和数字整数浮点复数和布尔对象。所有这些都是**不可变**对象。
这个概念最初可能会让人感到困惑,因为如果你不能修改它,对象有什么好处。使这些对象可用的是分配和重新分配变量的能力。函数和运算符可以返回可以分配给变量的新对象。
使用返回对象标识的内置[id函数](https://docs.python.org/3/library/functions.html#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
> > > \`