【python】Python 中,单下划线(_)和双下划线(__)开头以及结尾的命名方式具有特殊的含义和用途
Python 中,单下划线(_)和双下划线(__)开头以及结尾的命名方式具有特殊的含义和用途
【单下划线开头(如_name)】:
表示该变量、函数或类是内部使用的,即它是一个“受保护的”成员(protected member),可直接访问_name,不建议在类或模块外部直接访问。
【双下划线开头(如__name)】:
表示该变量、函数或类是私有的(private member),只能在类的内部访问。不可直接访问__name,因为Python 会进行名称修饰(name mangling),即把 __name 转换为 _classname__name,以避免子类或外部代码意外地访问到这些私有成员。
【双下划线开头和结尾(__name__)】:
表示这是一个特殊方法(magic method 或 dunder method),由 Python 内部定义和使用。这些方法通常用于实现特定的功能,如构造函数(__init__)、字符串表示(__str__)、加法运算符(__add__)等。开发者可以重写这些方法来自定义类的行为。
【单下划线结尾(name_)】:
为了避免与 Python 的关键字或内置名称冲突,可以在名称后面添加一个下划线。作用:这是一种约定,用于解决命名冲突问题。
【 双下划线结尾(name__)】:
这种情况较少见,通常用于避免与父类中的名称冲突,尤其是在多重继承的情况下。作用:通过双下划线结尾,可以减少名称冲突的可能性。