python 实例属性之单,双下划线

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 实例属性之单,双下划线相关的知识,希望对你有一定的参考价值。

具体区别看下面例子

 1 class A:
 2     def __init__(self,name=Andy):
 3         self._name = name 
 4 
 5 class B:
 6     def __init__(self,name = Jack,age=19):
 7         self.__name = name  # 私有属性(变量),只有类对象自己能访问,子类也不能访问
 8         self._age = age     # 保护变量,类,及子类对象可以访问
 9 
10 class C(B):
11     def h(self):
12         print(hello)
13 
14 a = A()
15 b = B()
16 c = C()
17 print(a._name)  # 输出Adny
18 print(b._B__name)   # 私有属性在类外的访问方式:对象._类__属性名
19 print(c._age)   # 输出19
20 print(c._C__name)   # AttributeError: ‘C‘ object has no attribute ‘_C__name‘子类不能访问

 

以上是关于python 实例属性之单,双下划线的主要内容,如果未能解决你的问题,请参考以下文章

Python类私有方法的陷阱

私有属性,私有方法,类变量,实例变量,单下划线,双下划线

Python中_,__,__xx__的区别

python 3 基础之单例模式

python之路之前没搞明白4面向对象(封装)

编写python高质量python代码的59个有效方法