下划线的几种含义
在 Python 中,下划线(_
)有多种用途和约定,它们通常与变量命名、模块导入、特殊方法(魔术方法)等相关。以下是一些常见的用途和含义:

单下划线前缀 (
_variable
):- 通常表示该变量是“受保护的”或“私有的”,但这只是一种约定,实际上 Python 没有真正的私有属性或方法。使用下划线前缀是为了告诉其他开发者:“这个变量或方法可能在类内部使用,并且不应该在外部直接访问。”
- 如果在类外部访问这样的变量或方法,它仍然是可能的,但可能会引发警告或混淆。
单个下划线是一个 Python 命名约定,表示这个名称是供内部使用的。 它通常不由 Python 解释器强制执行,仅仅作为一种对程序员的提示。
双下划线前缀 (
__variable
或__method__
):- 这是 Python 的“名称修饰”或“名称重整”的一个特性。当一个类属性或方法以双下划线开头但没有双下划线结尾时,Python 会在属性名前加上
_ClassName
前缀(其中ClassName
是类名),并将其转化为一个“私有”属性。 - 例如,如果你在一个名为
MyClass
的类中定义了一个属性__private_var
,Python 会将其转化为_MyClass__private_var
。
- 双下划线开头和结尾的方法(如
__init__
,__str__
等)是 Python 的特殊方法或魔术方法,它们在 Python 对象模型中具有特定的含义和用途。
- 这是 Python 的“名称修饰”或“名称重整”的一个特性。当一个类属性或方法以双下划线开头但没有双下划线结尾时,Python 会在属性名前加上
单下划线后缀 (
variable_
):- 这通常只是一个命名约定,用于区分变量是“数据”还是“临时”的。但这并不是 Python 的强制规则,只是一种风格上的建议。
单下划线 (
_
) 作为变量名:- 在某些上下文中,如循环或函数参数中,单个下划线用作一个“丢弃”或“不重要”的变量名。这通常意味着该变量在代码中的当前位置被使用,但其值并不重要或不需要被引用。
- 在交互式 Python shell(如 IDLE 或 IPython)中,单个下划线用于存储上一个操作的结果。
在模块导入时:
- 当你使用
from module import *
语句时,Python 默认不会导入以下划线(_
)开头的名称。这允许模块开发者定义一些内部使用的函数、类或变量,而不用担心它们会污染使用import *
的用户的命名空间。
- 当你使用
在字符串和变量名之间:
- 在某些情况下,下划线用作字符串和变量名之间的分隔符,以提高代码的可读性。例如,
my_variable_name
比myvariablename
更容易阅读和理解。
- 在某些情况下,下划线用作字符串和变量名之间的分隔符,以提高代码的可读性。例如,
请注意,虽然上述是一些常见的约定和用法,但 Python 并没有强制要求遵循这些规则。开发者可以自由地选择他们的命名约定和风格,只要他们保持一致性和可读性即可。
上次更新: 2025/04/02, 12:03:38