双下划线前缀在Python变量中起什么作用?
双下划线前缀
在Python中,我们在属性名称前使用双下划线,即__,并且这些属性在外部将无法直接访问/可见。双下划线会打乱属性的名称。但是,仍然可以使用一些棘手的语法来访问该变量,但这通常不是一个好主意。双下划线用于完全私有变量。
根据Python文档-
如果您的类打算被子类化,并且您具有不想使用子类的属性,请考虑使用双引号和下划线来命名它们。这将调用Python的名称修改算法,其中将类的名称修改为属性名称。这有助于避免属性名称冲突,如果子类无意中包含相同名称的属性。
示例
下面的代码显示了双下划线的使用。
class MyClass:
__hiddenVar = 0
def add(self, increment):
self.__hiddenVar += increment
print (self.__hiddenVar)
myObject = MyClass()myObject.add(3)
myObject.add (8)
print (myObject.__hiddenVar)输出结果
3
Traceback (most recent call last):
11
File "C:/Users/nhooo1/.PyCharmCE2017.2/config/scratches/scratch_1.py", line 12, in <module>
print (myObject.__hiddenVar)
AttributeError: MyClass instance has no attribute '__hiddenVar'在上面的程序中,我们尝试使用object访问类外部的隐藏变量,它引发了异常。
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短