前言
在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
從上面的示例中可以看到,類的實例要調用私有方法也是和調用私有變量的語法一樣。
本篇結束,歡迎留言交流