<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 5.8.?類屬性介紹 你已經知道了[數據屬性](userdict.html#fileinfo.userdict.init.example "例?5.9.?定義 UserDict 類"),它們是被一個特定的類實例所擁有的變量。Python 也支持類屬性,它們是由類本身所擁有的。 ## 例?5.17.?類屬性介紹 ``` class MP3FileInfo(FileInfo): "store ID3v1.0 MP3 tags" tagDataMap = {"title" : ( 3, 33, stripnulls), "artist" : ( 33, 63, stripnulls), "album" : ( 63, 93, stripnulls), "year" : ( 93, 97, stripnulls), "comment" : ( 97, 126, stripnulls), "genre" : (127, 128, ord)} ``` ``` >>> import fileinfo >>> fileinfo.MP3FileInfo <class fileinfo.MP3FileInfo at 01257FDC> >>> fileinfo.MP3FileInfo.tagDataMap {'title': (3, 33, <function stripnulls at 0260C8D4>), 'genre': (127, 128, <built-in function ord>), 'artist': (33, 63, <function stripnulls at 0260C8D4>), 'year': (93, 97, <function stripnulls at 0260C8D4>), 'comment': (97, 126, <function stripnulls at 0260C8D4>), 'album': (63, 93, <function stripnulls at 0260C8D4>)} >>> m = fileinfo.MP3FileInfo() >>> m.tagDataMap {'title': (3, 33, <function stripnulls at 0260C8D4>), 'genre': (127, 128, <built-in function ord>), 'artist': (33, 63, <function stripnulls at 0260C8D4>), 'year': (93, 97, <function stripnulls at 0260C8D4>), 'comment': (97, 126, <function stripnulls at 0260C8D4>), 'album': (63, 93, <function stripnulls at 0260C8D4>)} ``` | | | | --- | --- | | \[1\] | `MP3FileInfo` 是類本身,不是任何類的特別實例。 | | \[2\] | `tagDataMap` 是一個類屬性:字面的意思,一個類的屬性。它在創建任何類實例之前就有效了。 | | \[3\] | 類屬性既可以通過直接對類的引用,也可以通過對類的任意實例的引用來使用。 | > 注意 > 在 Java 中,靜態變量 (在 Python 中叫類屬性) 和實例變量 (在 Python 中叫數據屬性) 兩者都是緊跟在類定義之后定義的 (一個有 `static` 關鍵字,一個沒有)。在 Python 中,只有類屬性可以定義在這里,數據屬性定義在 `__init__` 方法中。 類屬性可以作為類級別的常量來使用 (這就是為什么我們在 `MP3FileInfo` 中使用它們),但是它們不是真正的常量。你也可以修改它們。 > 注意 > 在 Python 中沒有常量。如果你試圖努力的話什么都可以改變。這一點滿足 Python 的核心原則之一:壞的行為應該被克服而不是被取締。如果你真正想改變 `None` 的值,也可以做到,但當無法調試的時候別來找我。 ## 例?5.18.?修改類屬性 ``` >>> class counter: ... count = 0 ... def __init__(self): ... self.__class__.count += 1 ... >>> counter <class __main__.counter at 010EAECC> >>> counter.count 0 >>> c = counter() >>> c.count 1 >>> counter.count 1 >>> d = counter() >>> d.count 2 >>> c.count 2 >>> counter.count 2 ``` | | | | --- | --- | | \[1\] | `count` 是 `counter` 類的一個類屬性。 | | \[2\] | `__class__` 是每個類實例的一個內置屬性 (也是每個類的)。它是一個類的引用,而 `self` 是一個類 (在本例中,是 `counter` 類) 的實例。 | | \[3\] | 因為 `count` 是一個類屬性,它可以在我們創建任何類實例之前,通過直接對類引用而得到。 | | \[4\] | 創建一個類實例會調用 `__init__` 方法,它會給類屬性 `count` 加 `1`。這樣會影響到類自身,不只是新創建的實例。 | | \[5\] | 創建第二個實例將再次增加類屬性 `count`。注意類屬性是如何被類和所有類實例所共享的。 |
                  <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>

                              哎呀哎呀视频在线观看