那什么是标识符?
标识符是对对象引用起的一个名字。
有效的python标识符规则:
1.长度任意长;
2.标识符不能与关键字同名;
3.在2.x版本的python中,标识符以ascii的字母或下划线开始,后面可以接字母、数字、下划线;在3.x的python中,标识符ascii字母、下划线以及大多数非英文语言的字母,只要是unicode编码的字母都可以充当引导字符,后续字符可以是任意引导符,或任意非空格字符,包括unicode编码中认为是数字的任意字符。(因此可以使用阿拉伯语、中文、日语或俄语字符或unicode字符集支持的任意其他语言中的字符进行命名)
约定:
1.不要使用python预定义的标识符名,因此要避免使用notimplemented与eliiipsis等名字,这些在未来有可能被python的新版本使用到;
2.不要使用python内置函数名或内置数据类型或异常名作为标识符名;
3.关于下划线的约定,名字的开头和结尾都使用下划线的情况应该避免,因为python中大量采用这种名字定义了各种特殊方法和变量;在有些情况,以一个或两个下划线引导的名称,但是没有使用两个下划线结尾的应该特殊对待。
举例
>>> math=2>>> math2
上面的语句是合法的,但是它将与math数据类型绑定的对象引用重新与int数据类型对象绑定,那么将不能正常使用math数据类型的属性了。
>>> int=2>>> int2
和上面的一样,是合法的但是不提倡。
#合法a123_=2 _a123=2我=2 #中文α=2 #希腊字母
#不合法的标识符名a-b=2 #因为包含了减法操作符,'-'不是一个unicode字母、数字、下划线,不能将2赋值给操作符2miles=2 #不能数字开头i'm=2 #单引号不是一个unicode字母、数字或下划线
关于下划线还有一点想说的:
单一的下划线可以作为一个标识符,在交互解释器或python shell内部,下划线实际上存放了最后一个被评估的表达式的结果。在通常运行的程序中,使用下划线和其他普通标识符一样,需要自己预先定义,非系统占有。
在不关心迭代针对的数据项是,有些程序员喜欢在for...in..中使用_,如:
#没有使用到迭代的数据项for _ in (0,1,2,3,4,5): print("hello")
另外要注意一点,一些编写国际化程序的程序员一般会使用_作为其翻译函数的名称。这些程序员一般不使用gettext(translate me),而是使用_(translate me)。
当变量是私有的时候,用_xxx 来表示变量是很好的习惯。
在类中,“单下划线” 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;“双下划线” 开始的是类的私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。
以上就是python标识符的命名规则是什么的详细内容。
