您当前位置:首页 > 深入 Python > 原生数据类型 > 声明变量 | << >> | ||||
深入 Python从 Python 新手到专家 |
现在您已经了解了字典、元组和列表(我的天哪!),让我们回到第 2 章中的示例程序 odbchelper.py。
Python 像大多数其他语言一样,拥有局部变量和全局变量,但它没有显式的变量声明。变量通过赋值而存在,并在超出作用域时自动销毁。
if __name__ == "__main__": myParams = {"server":"mpilgrim", \ "database":"master", \ "uid":"sa", \ "pwd":"secret" \ }
注意缩进。 if 语句是一个代码块,需要像函数一样缩进。
还要注意,变量赋值是一个跨越多行的命令,反斜杠(“\”)用作行延续标记。
![]() |
|
当一个命令使用行延续标记(“\”)拆分成多行时,延续行可以以任何方式缩进;Python 通常严格的缩进规则不适用。如果您的 Python IDE 自动缩进了延续行,您应该接受其默认设置,除非您有充分的理由不这样做。 |
严格来说,括号、方括号或花括号(如定义字典)中的表达式可以使用或不使用行延续字符(“\”)拆分成多行。我喜欢包含反斜杠,即使它不是必需的,因为我认为它使代码更易于阅读,但这只是一种风格问题。
第三,您从未声明变量 myParams,只是为其分配了一个值。这就像没有 option explicit 选项的 VBScript。幸运的是,与 VBScript 不同,Python 不允许您引用从未赋值的变量;尝试这样做会引发异常。
>>> x Traceback (innermost last): File "<interactive input>", line 1, in ? NameError: There is no variable named 'x' >>> x = 1 >>> x 1
总有一天你会感谢 Python 的。
Python 中比较酷的编程快捷方式之一是使用序列一次性分配多个值。
这有很多用途。我经常想为一系列值分配名称。在 C 中,您将使用 enum 并手动列出每个常量及其关联的值,当这些值是连续的时,这看起来特别乏味。在 Python 中,您可以使用内置的 range 函数和多变量赋值来快速分配连续值。
>>> range(7)[0, 1, 2, 3, 4, 5, 6] >>> (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7)
>>> MONDAY
0 >>> TUESDAY 1 >>> SUNDAY 6
您还可以使用多变量赋值来构建返回多个值的函数,只需返回所有值的元组即可。调用者可以将其视为元组,也可以将值分配给单个变量。许多标准 Python 库都这样做,包括您将在第 6 章中讨论的 os 模块。
<< 元组简介 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
格式化字符串 >> |