3.3 标识符

标识符是计算机语言中允许作为名字的有效字符串集合。其中,有一部分是关键字,构成语言的标识符。这样的标识符是保留字,不能用于其他用途,否则会引起语法错误(SyntaxError异常)。

Python还有称为“内建”(built-in)的标识符集合,虽然它们不是保留字,但是不推荐使用这些特别的名字(见3.3.3)。

3.3.1 合法的Python标识符

Python标识符字符串规则和其他大部分用C编写的高级语言相似:

  • 第一个字符必须是字母或下划线(_);

  • 剩下的字符可以是字母和数字或下划线;

  • 大小写敏感。

标识符不能以数字开头;除了下划线,其他的符号都不允许使用。处理下划线最简单的方法是把它们当成字母字符。大小写敏感意味着标识符foo不同于Foo,而这两者也不同于FOO。

3.3.2 关键字

表3.1列出了Python关键字。一般来说,任何语言的关键字都是相对稳定的,但事情总会改变(Python是一种发展和进化中的语言),Keyword模块中同时包含了一个关键字列表和一个iskeyword()函数。

3.3 标识符 - 图1

3.3.3 内建

除了关键字之外,Python还有可以在任何一级代码使用的“内建”(built-in)的名字集合,这些名字可以由解释器设置或使用。虽然built-in不是关键字,但是应该把它当作“系统保留字”,不做他用。然而,有些情况要求覆盖(也就是重定义、替换)它们。Python不支持重载标识符,所以任何时刻都只有一个名字绑定。

我们还可以告诉高级读者built-in是builtins模块的成员,在你的程序开始或在交互解释器中给出 >>>提示之前,由解释器自动导入的。把它们看成适用在任何一级Python代码的全局变量。

3.3.4 专用下划线标识符

Python用下划线作为变量前缀和后缀指定特殊变量。稍后我们会发现,对于程序来说,其中的有些变量是非常有用的,而其他的则是未知或无用的。这里对Python中下划线的特殊用法做了总结。

  • _xxx 不用‘from module import*’导入

  • xxx 系统定义名字

  • _xxx 类中的私有变量名

3.3 标识符 - 图2核心风格:避免用下划线作为变量名的开始

因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有的”,在模块或类外不可以使用。当变量是私有的时候,用_xxx来表示变量是很好的习惯。因为变量名_xxx对Python来说有特殊含义,对于普通的变量应当避免这种命名风格。