python 命名之下划线
在Python中,名称的命名约定和使用下划线的方式有特定的意义和用途。以下是一些常见的命名约定及其含义:
-
没有下划线:
- 这是最常见的命名方式,用于普通的变量、函数和方法。
- 例如:
x
,my_function
,my_class
.
-
单下划线(前缀或后缀):
- 前缀:通常用于保护成员(protected),即它们不应该被外部访问,但可以被子类访问。
- 后缀:在一些情况下,单下划线用于表示一个方法或属性是被废弃的,或者是一个私有的实现细节。
- 例如:
_my_var
,my_var_
,deprecated_method
.
-
双下划线(前缀):
- 用于私有成员(private)。Python通过名称重整(name mangling)机制来实现私有属性和方法。当你在类中定义一个以双下划线开头的属性或方法时,Python会在类外部将这个名称修改为
_ClassName__attributeName
。 - 这样做的目的是防止子类中定义的属性或方法与父类中的属性或方法冲突。
- 例如:
__my_var
,__init__
.
- 用于私有成员(private)。Python通过名称重整(name mangling)机制来实现私有属性和方法。当你在类中定义一个以双下划线开头的属性或方法时,Python会在类外部将这个名称修改为
-
双下划线(后缀):
- 通常用于特殊方法(magic methods),这些方法有特殊的名字,Python解释器会以特殊的方式调用它们。
- 例如:
__init__
(构造方法),__del__
(析构方法),__str__
(字符串表示方法),__len__
(长度获取方法)。
具体例子
my_var
:普通的实例变量。_my_var
:受保护的实例变量,建议子类使用。__my_var
:私有实例变量,只能在类内部访问。__init__(self, arg)
:构造方法,用于初始化对象。__str__(self)
:特殊方法,返回对象的字符串表示。
命名约定
- 小写字母:用于普通函数、变量和方法。
- 大写字母:用于类名。
- 单下划线:通常用于保护成员或废弃的方法。
- 双下划线:用于私有成员或特殊方法。
注意事项
- 单下划线:虽然单下划线在Python中没有强制的语义,但它是一个约定俗成的命名方式,用来表示这些成员不应该被外部访问。
- 双下划线:名称重整只对实例属性有效,不适用于全局变量或类属性。
通过遵循这些命名约定,可以提高代码的可读性和可维护性。