| 導航:起始頁 > Dive Into Python > 對象和面向對象 > 私有函數 | << >> | ||||
深入 Python :Dive Into Python 中文版Python 從新手到專家 [Dip_5.4b_CPyUG_Release] |
|||||
與大多數語言一樣,Python 也有私有的概念:
與大多數的語言不同,一個 Python 函數,方法,或屬性是私有還是公有,完全取決于它的名字。
如果一個 Python 函數,類方法,或屬性的名字以兩個下劃線開始 (但不是結束),它是私有的;其它所有的都是公有的。 Python 沒有類方法保護 的概念 (只能用于它們自已的類和子類中)。類方法或者是私有 (只能在它們自已的類中使用) 或者是公有 (任何地方都可使用)。
在 MP3FileInfo 中,有兩個方法:__parse 和 __setitem__。正如我們已經討論過的,__setitem__ 是一個專有方法;通常,你不直接調用它,而是通過在一個類上使用字典語法來調用,但它是公有的,并且如果有一個真正好的理由,你可以直接調用它 (甚至從 fileinfo 模塊的外面)。然而,__parse 是私有的,因為在它的名字前面有兩個下劃線。
| 在 Python 中,所有的專用方法 (像 __setitem__) 和內置屬性 (像 __doc__) 遵守一個標準的命名習慣:開始和結束都有兩個下劃線。不要對你自已的方法和屬性用這種方法命名;到最后,它只會把你 (或其它人) 搞亂。 | |
>>> import fileinfo >>> m = fileinfo.MP3FileInfo() >>> m.__parse("/music/_singles/kairo.mp3")Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'MP3FileInfo' instance has no attribute '__parse'
<< 類屬性介紹 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
小結 >> |