我已经在各种编程语言(PHP 和 Python)中看到以下划线开头的函数和变量,并且对它背后的含义感到困惑。
user2913664
问问题
1876 次
2 回答
5
假设在 PHP 中使用了正常的约定:
- 单下划线表示受保护的成员变量或方法
- 双下划线表示私有成员变量或方法
这源于 PHP 对 OOP 的支持较弱并且没有私有和受保护的概念(一切都是公共的)。此约定允许开发人员指示成员变量或方法是私有的或受保护的,以便更好地将其传达给代码的用户。
不过,用户可以选择忽略这些语义并调用“私有”和“受保护”成员变量和方法。
于 2013-10-24T00:36:12.083 回答
3
单下划线对 Python 中的类/实例属性没有特殊含义。按照惯例,它表示私有变量/函数。from module import *
不会导入以下划线开头的函数和变量。(感谢毕里科)。
双下划线调用名称修饰。这让类具有一个不同于其子类中具有相同名称的属性的属性。
于 2013-10-24T00:57:04.100 回答