python中不同下划线类型的含义
python共有5中不同的下划线类型含义
这五种下划线共同遵守了PEP8的规则,分别是:
① 单前导下划线:_test
② 单末尾下划线:test_
③ 双前导下划线:__test
④ 双前导和双末尾下划线:__test__
⑤ 单下划线:_
下面分别介绍不同下划线类型代表的含义
单前导下划线:_test
该下划线旨在表明该修饰的变量或方法仅供内部使用,表示不属于公共接口的部分,因为python中的“私有变量”和“公有变量”没有java分的那么清楚。因此单前导下划线是人为制定的一种规则,需要共同遵守。
通俗来讲这是一个保护成员(属性或者方法),只有类对象和子类对象自己能访问到这些变量,是用来指定私有变量和方法的一种方式(约定而已)
注:对于前导下划线修饰的方法来说,import * 并不会导入以单下划线开头的方法,需要注意!
单末尾下划线test_
这个下划线也是一种人为制定的规则,主要用于解决与python关键字冲突的参数命名。
双前导下划线:__test
因为python中没有严格意义上的“私有变量”,以双前导下划线命名的变量或方法,不能直接调用,通过dir(obj),我们可以发现会加上python解释器重新命名了该属性,通常以_类__变量的格式命名。
注:既然不是真正的“私有变量”,那么其实是可以通过obj.__dict__来访问这些“私有变量”。不过一般不会这么做,都会遵守约定。
双前导和双末尾下划线:__test__
这个下划线往往出现在python内置的魔法方法中,所以除非重写这些魔法方法,否则尽量不要自定义这种下划线的方法,避免和python语法冲突
单下划线:_
该下划线往往针对不是很重要的索引或变量使用匿名,作为一个临时值。
同时,它作为一个特殊变量,表示有解释器评估的最近的一个结果。
1 | |
结果:
`>>> _
male
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!