以单下划线或双下划线开头的函数和变量



我在各种编程语言(PHP和Python)中看到过以下划线开头的函数和变量,并且对其背后的含义感到困惑。

假设在 PHP 中使用了正常约定:

  • 单个下划线表示受保护的成员变量或方法
  • 双下划线表示私有成员变量或方法

这源于 PHP 的 OOP 支持较弱,并且没有私有和受保护的概念(一切都是公共的)。此约定允许开发人员指示成员变量或方法是私有的或受保护的,以便更好地将其传达给代码用户。

但是,用户可以选择忽略这些语义,并调用"私有"和"受保护"的成员变量和方法(如果愿意)。

单个下划线对于 Python 中的类/实例属性没有特殊含义。按照惯例,它表示私有变量/函数。 from module import *不会导入以单个下划线开头的函数和变量。(感谢毕里科)。

双下划线调用名称重整。这使类具有与其子类中具有相同名称的属性不同的属性。

最新更新