我终于把Python中下划线的含义弄清楚了(憋了很久了)-腾讯云开发者社区-腾讯云
原文链接:Python:下划线的含义 · 语雀
图案 | 例 | 含义 |
单引号下划线 | _var | 表示名称的命名约定仅供内部使用。通常不由Python解释器强制执行(通配符导入除外),并且仅作为对程序员的提示。 |
单尾划线 | var_ | 按照惯例使用,以避免与Python关键字命名冲突。 |
双领先下划线 | __var | 在类上下文中使用时触发名称修饰(外部访问需加“_类名”)。由Python解释器实施。是不能直接通过该名称去访问到的,实现了一定程度上的隔离。 |
双重领先和落后强调 | __var__ | 表示由Python语言定义的特殊方法。避免为自己的属性使用此命名方案。不会发生名称修饰。 |
单下划线 | _ | 有时用作临时变量或无关紧要变量的名称(“无关紧要”)。 |
发生名称修饰:
class Test:
def __init__(self):
self.foo = 11
self._bar = 23
self.__baz = 42
#实例化这个类并用内置的dir()函数来看看这个对象的属性:
t = Test()
print(dir(t))
print(t._Test__baz) # 在外部访问__baz变量名时,应使用 _类名__变量名即_Test__baz
不发生名称修饰:
class B(object):
def __init__(self):
self.__private__=10
t=B()
print(t.__private__) #输出:10