在 Python 中,一个下划线开头的标识符(如 _foo
)通常被视为一个内部实现,并不建议在代码中直接使用这种命名方式。
如果你在代码中看到了一个下划线开头的变量或函数,你应该把它视为一个实现细节,不要依赖这个变量或函数的行为。通常这些下划线开头的标识符是为了给 Python 的类库或框架提供私有的、内部使用的 API,不建议在应用代码中直接使用。
举个例子,如果你看到了这样一个类:
class MyClass:
def __init__(self):
self._foo = 1
self.__bar = 2
obj = MyClass()
print(obj._foo) # 可以访问
print(obj.__bar) # 会报错,因为访问了一个私有变量
你可以访问 _foo
这个变量,但是不建议你依赖它。如果你试图访问 __bar
这个变量,会抛出一个 AttributeError 异常,因为这个变量是私有的,不应该在外部访问。