阐述什么标识符不建议使用下划线开头?
在Python中,以下划线开头的标识符通常被视为内部使用或私有的标识符。这是一种约定,用于指示开发者该标识符是供内部使用的,而不是作为公共API的一部分。因此,普通的变量、函数、类等标识符不建议使用下划线开头。
使用下划线开头的标识符有一些特殊情况:
- 单下划线开头:例如
_variable
,这种命名通常被用作一个约定,表示该变量是“受保护的”或“私有的”,但实际上在Python中并没有真正的私有变量,这只是一种程序员之间的默契。这样的命名主要是为了避免与子类中的同名属性发生冲突。 -
双下划线开头且结尾没有下划线:例如
__private_var
,这种命名方式在Python中会触发名称修饰(name mangling),Python会改变这个变量名的表示形式,使其更难被直接访问。这是一种更强烈的约定,表示该变量是私有的,并且不应在类外部被访问。 -
双下划线开头且双下划线结尾:这种命名方式通常用于特殊的方法,如
__init__
或__call__
,它们是Python的魔术方法(magic methods),有着特殊的意义和用途。这些不是普通的标识符,而是类的特殊方法。 -
单下划线作为变量名:单独一个下划线
_
在Python中是一个合法的变量名,但在许多情况下它被用作一个临时的“丢弃”变量,用于在循环或其他结构中接收不需要的值。
对于普通的变量、函数和类,不建议使用下划线开头,因为这可能会给阅读代码的人造成困惑,误以为是内部使用或私有的。此外,遵循PEP 8等编码规范也有助于保持代码的一致性和可读性。PEP 8建议,除非有明确的理由需要使用下划线,否则应避免在公共API中使用下划线开头的标识符。