我已经看到函数和变量以各种编程语言(PHP和Python)的下划线开头,并且对它背后的含义感到困惑。
答案 0 :(得分:5)
假设在PHP中使用了普通约定:
这源于PHP具有弱OOP支持并且没有私有和受保护(一切都是公开的)概念。此约定允许开发人员指示成员变量或方法是私有的还是受保护的,以便更好地将其传达给代码的用户。
用户可以选择忽略这些语义,并调用“私有”和“受保护”成员变量和方法,如果这样选择的话。
答案 1 :(得分:3)
单下划线对Python中的类/实例属性没有特殊意义。通过约定它表示私有变量/函数。 from module import *
不会导入以单个下划线开头的函数和变量。 (感谢Bi Rico)。
双下划线调用name mangling。这使得类具有与其子类中具有相同名称的属性不同的属性。