3

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

4

2 回答 2

5

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

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

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

不过,用户可以选择忽略这些语义并调用“私有”和“受保护”成员变量和方法。

于 2013-10-24T00:36:12.083 回答
3

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

双下划线调用名称修饰。这让类具有一个不同于其子类中具有相同名称的属性的属性。

于 2013-10-24T00:57:04.100 回答