python類中的_和__含義


1._的含義

在python的類中,沒有真正的私有化,不管是方法還是屬性,為了編程的需要,約定加了下划線 _ 的屬性和方法不屬於API,不應該在類的外面訪問,也不會被from M import * 導入。下面的代碼演示加了_ 的方法,以及在類外面對其的可訪問性。

 

含_實際可以調用,只是不推薦

class A:
    def _test(self):
        print("a")

a = A()
#不推薦使用,但是可以使用 a._test()

 

2.__的含義

python中的__和一項稱為name mangling的技術有關,name mangling (又叫name decoration命名修飾).在很多現代編程語言中,這一技術用來解決需要唯一名稱而引起的問題,比如命名沖突/重

在類A中,__method方法其實由於name mangling技術的原因,變成了_A__method,所以在A中method方法返回的是_A__method,B作為A的子類,只重寫了__method方法,並沒有重寫method方法,所以調用B中的method方法時,調用的還是_A__method方法

B作子類,實際繼承的是_A__method方法,重寫新的__method方法不會改變_A__method方法,只會創造_B__method

 


免責聲明!

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



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