菜鸟教程
单前导_var
变量或方法仅供内部使用,但仅作为一种提示,通常不由解释器强制执行
实例化类
仍可访问
class Test:
def __init__(self):
self.foo = 11
self._bar = 23
t=Test()
print(t.foo)
print(t._bar)
输出结果:
11
23
模块导入
# 名为myModule的模块
def external_func():
return 23
def _internal_func():
return 42
通配符导入
不可访问,不会导入带有前导下划线的名称,除非模块定义了覆盖此行为的__all__列表
from myModule import *
print(external_func())
print(_internal_func())
常规导入
仍可访问
import myModule
print(myModule.external_func())
print(myModule._internal_func())
输出结果:
23
42
单末尾var_
避免与关键字命名冲突
def new(a,class):
pass
def new(a,class_):
pass
双前导__var
触发名称修饰,解释器强制执行
名称修饰
解释器会重写属性名称,以便类扩展时不容易产生冲突
双前导和双末尾__var__
dunder(double underscore)
不会应用名称修饰,命名时最好避免,python保留了双前导和双末尾的名称用于特殊用途,比如__init__
对象构造函数,__call__
调用对象
单下划线_
临时或无意义的变量名称,默认将表达式结果赋予_,但若定义了变量_,那就相当于定义了一个变量_