1. 有效的Python标识符规则:
(1)长度任意长;
(2)标识符不能与关键字同名;
(3)在2.x版本的Python中,标识符以ASCII的字母或下划线开始,后面能够接字母、数字、下划线;
在3.x的Python中,标识符ASCII字母、下划线以及大多数非英文语言的字母,只要是Unicode编码的字母均可以充当引导字符,后续字符能够是任意引导符,或任意非空格字符,包括Unicode编码中认为是数字的任意字符。(所以可使用阿拉伯语、中文、日语或俄语字符或Unicode字符集支持的任意其余语言中的字符进行命名)
2. 约定:
(1)不要使用Python预约义的标识符名,所以要避免使用NotImplemented与Eliiipsis等名字,这些在将来有可能被Python的新版本使用到;
(2)不要使用Python内置函数名或内置数据类型或异常名做为标识符名;
(3)关于下划线的约定,名字的开头和结尾都使用下划线的状况应该避免,由于Python中大量采用这种名字定义了各类特殊方法和变量;在有些状况,以一个或两个下划线引导的名称,可是没有使用两个下划线结尾的应该特殊对待。
3.Python专用下划线标识符
首先,建议尽可能避免使用下划线做为标识符的开始
(1)单下划线开头的变量名
模块级私有,这个被经常使用于模块中,
在一个模块中以单下划线开头的变量和函数被默认看成内部函数,
若是使用 from a_module import * 导入时,这部分变量和函数不会被导入,除非除非模块或包中的“__all__”列表显式地包含了它们。不过值得注意的是,若是使用 import a_module 这样导入模块,仍然能够用 a_module._some_var 这样的形式访问到这样的对象。
在类中,“单下划线” 开始的成员变量叫作保护变量,意思是
只有类对象和子类对象本身能访问到这些变量;
使用单下划线私有变量,是程序员的一个很好的习惯
(2)双下划线开头的变量名(不是以双下划线结尾)
类的私有成员,意思是只有类对象本身能访问,连子类对象也不能访问到这个数据。
即若是有一 Test 类里有一成员 __x,那么 dir(Test) 时会看到 _Test__x 而非 __x。这是为了不该成员的名称与子类中的名称冲突。但要注意这要求该名称末尾没有下划线。python
(3)双下划线开头,双下划线结尾的变量名程序员
python里特殊方法专用的标识,如 __init__()表明类的构造函数。函数
(4)单下划线_(了解便可)
一般状况下,会在如下3种场景中使用:编码
a) 在解释器中:在这种状况下,“_”表明交互式解释器会话中上一条执行的语句的结果。spa
b)做为一个名称: “_”做为临时性的名称使用。这样,当其余人阅读你的代码时将会知道,你分配了一个特定的名称,可是并不会在后面再次用到该名称。例如,下面的例子中,你可能对循环计数中的实际值并不感兴趣,此时就可使用“_”;翻译
c)国际化:也许你也曾看到”_“会被做为一个函数来使用。这种状况下,它一般用于实现国际化和本地化字符串之间翻译查找的函数名称,这彷佛源自并遵循相应的C约定。code