Python 变量
Python 中的变量不需要声明,但是变量使用前必须赋值(即便是空值),变量赋值以后该变量才会被创建。变量的赋值使用等号(=),等号运算符左边是一个变量名,右边是存储在变量中的值。
实际上,在 Python 中,变量就是变量,它没有类型,我们平常说的“类型”指的是变量所指向的内存中对象的类型。
变量命名规则
变量名必须遵守下面几条基本规则:
- 变量名的长度不受限制,但其中的字符必须是字母、数字或下划线,不能使用空格、连字符、标点符号、引号或其他字符。
- 变量名的第一个字符不能是数字,而必须是字母或下划线。
- Python 区分大小写,因此 TAX、Tax 和 tax 是截然不同的变量名。
- 不能将 Python 关键字用作变量名。例如 if、else、while、def、or、and、not、in 等等。
与变量一样,函数、模块和类也都有名称。我们将这些名称统称为标识符。
下划线命名模式
单下划线和双下划线在 Python 变量和方法名称中都各有其含义。有一些含义仅仅是依照约定,被视作是对程序员的提示,而有一些含义是由 Python 解释器严格执行的。
这里先简单介绍一下:
模式 | 举例 | 含义 |
---|---|---|
单前导下划线 | _var | 命名约定,仅供内部使用。通常不会由 Python 解释器强制执行(通配符导入除外),只作为对程序员的提示。 |
单末尾下划线 | var_ | 按约定使用以避免与 Python 关键字的命名冲突。 |
双前导下划线 | __var | 当在类上下文中使用时,触发“名称修饰”。由 Python 解释器强制执行。 |
双前导和双末尾下划线 | __var__ | 表示 Python 语言定义的特殊方法。避免在你自己的属性中使用这种命名方案。 |
单下划线 | _ | 有时用作临时或无意义(不关心)变量的名称。也表示 Python REPL 中最近一个表达式的结果。 |
赋值语句
赋值语句包含3个主要部分:左值、赋值运算符和右值。
赋值语句有两个用途:
- 定义新的变量;
- 让已定义的变量指向特定值。
在 Python 中,可以将任何值赋给变量,包括其他变量的值,请看下面的一系列赋值语句:
x = 5
y = 'cat'
x = y
提示
常用于描述变量和值的术语很多。我们有时候说将值赋给变量或给变量指定值。
对于已经赋值的变量,说它指向、标记或拥有相应的值。
程序员有时说变量包含其值,好像变量是桶,而值在桶内。这种说法的问题在于,Python 变量并不符合你以为的 “包含” 模型。例如,在 Python 中,同一个对象不能同时出现在多个桶内,但可以有多个变量同时指向它。
多重赋值
在 Python 中,有一种便利的技巧,让你能够同时给多个变量赋值:
x, y, z = 1, 'two', 3.0
在交互模式下测试
>>> x, y, z = 1, 'two', 3.0
>>> x
1
>>> y
'two'
>>> z
3.0
>>> x, y, z
(1, 'two', 3.0)