前言
在java 的类中,如果你要定义一个私有变量,可以用修饰词 private
,那么在Python 的类中呢,Python中没public private
之类的修饰词,那Python 是如何定义私有变量的呢?
私有变量
在Python 类中定义私有变量,只要在变量前加 __ (两个下划线) ,那么该类的实例就不能引用了,看下面实例
>>> class demo(object): ... __a =1 ... b = 2 ... >>> d = demo() >>> print(d.b) 2 >>> d.__a Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'demo' object has no attribute '__a'
从上面的示例中可以看到,类demo的实例d可以不能调用变量__a
,那实例d 有没有办法调用到__a
呢,看下面的调用语法:
>>> d._demo__a 1
实例名+'_'+类名+私有变量 ,就能调用。大家记住这样的语法。
私有方法
私有方法同私有变量的语法也是一样的,我们直接看示例:
>>> class fun(object): ... def __a(self): ... print('聚焦学院AAA') ... def b(self): ... print('聚焦学院BBB') ... >>> f = fun() >>> f.b() 聚焦学院BBB >>> f.__a() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'fun' object has no attribute '__a' >>> f._fun__a() 聚焦学院AAA
从上面的示例中可以看到,类的实例要调用私有方法也是和调用私有变量的语法一样。
本篇结束,欢迎留言交流