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

时间:2013-10-24 00:33:26

标签: php python

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

2 个答案:

答案 0 :(得分:5)

假设在PHP中使用了普通约定:

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

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

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

答案 1 :(得分:3)

单下划线对Python中的类/实例属性没有特殊意义。通过约定它表示私有变量/函数。 from module import *不会导入以单个下划线开头的函数和变量。 (感谢Bi Rico)。

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