如何在 Python的類中定義私有變量


前言

在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

從上面的示例中可以看到,類的實例要調用私有方法也是和調用私有變量的語法一樣。

本篇結束,歡迎留言交流


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM