<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 5.9.?私有函數 與大多數語言一樣,Python 也有私有的概念: * 私有函數不可以從它們的模塊外面被調用 * 私有類方法不能夠從它們的類外面被調用 * 私有屬性不能夠從它們的類外面被訪問 與大多數的語言不同,一個 Python 函數,方法,或屬性是私有還是公有,完全取決于它的名字。 如果一個 Python 函數,類方法,或屬性的名字以兩個下劃線開始 (但不是結束),它是私有的;其它所有的都是公有的。 Python 沒有類方法_保護_ 的概念 (只能用于它們自已的類和子類中)。類方法或者是私有 (只能在它們自已的類中使用) 或者是公有 (任何地方都可使用)。 在 `MP3FileInfo` 中,有兩個方法:`__parse` 和 `__setitem__`。正如我們已經討論過的,`__setitem__` 是一個[專有方法](special_class_methods.html#fileinfo.specialmethods.setitem.example "例?5.13.?__setitem__ 專用方法");通常,你不直接調用它,而是通過在一個類上使用字典語法來調用,但它是公有的,并且如果有一個真正好的理由,你可以直接調用它 (甚至從 `fileinfo` 模塊的外面)。然而,`__parse` 是私有的,因為在它的名字前面有兩個下劃線。 > 注意 > 在 Python 中,所有的專用方法 (像 [`__setitem__`](special_class_methods.html#fileinfo.specialmethods.setitem.example "例?5.13.?__setitem__ 專用方法")) 和內置屬性 (像 [`__doc__`](../getting_to_know_python/everything_is_an_object.html#odbchelper.import "例?2.3.?訪問 buildConnectionString 函數的 doc string")) 遵守一個標準的命名習慣:開始和結束都有兩個下劃線。不要對你自已的方法和屬性用這種方法命名;到最后,它只會把你 (或其它人) 搞亂。 ## 例?5.19.?嘗試調用一個私有方法 ``` >>> 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\] | 如果你試圖調用一個私有方法,Python 將引發一個有些誤導的異常,宣稱那個方法不存在。當然它確實存在,但是它是私有的,所以在類外是不可使用的。嚴格地說,私有方法在它們的類外是可以訪問的,只是不_容易_ 處理。在 Python 中沒有什么是真正私有的;在內部,私有方法和屬性的名字被忽然改變和恢復,以致于使得它們看上去用它們給定的名字是無法使用的。你可以通過 `_MP3FileInfo__parse` 名字來使用 `MP3FileInfo` 類的 `__parse` 方法。知道了這個方法很有趣,然后要保證決不在真正的代碼中使用它。私有方法由于某種原因而私有,但是像其它很多在 Python 中的東西一樣,它們的私有化基本上是習慣問題,而不是強迫的。 | ## 進一步閱讀 * _Python Tutorial_ 討論了[私有變量](http://www.python.org/doc/current/tut/node11.html#SECTION0011600000000000000000)的內部工作方式。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看