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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 問題 你想改變對象實例的打印或顯示輸出,讓它們更具可讀性。 ## 解決方案 要改變一個實例的字符串表示,可重新定義它的 `__str__()` 和 `__repr__()` 方法。例如: class Pair: def __init__(self, x, y): self.x = x self.y = y def __repr__(self): return 'Pair({0.x!r}, {0.y!r})'.format(self) def __str__(self): return '({0.x!s}, {0.y!s})'.format(self) `__repr__()` 方法返回一個實例的代碼表示形式,通常用來重新構造這個實例。內置的 `repr()` 函數返回這個字符串,跟我們使用交互式解釋器顯示的值是一樣的。`__str__()` 方法將實例轉換為一個字符串,使用 `str()` 或 `print()` 函數會輸出這個字符串。比如: >>> p = Pair(3, 4) >>> p Pair(3, 4) # __repr__() output >>> print(p) (3, 4) # __str__() output >>> 我們在這里還演示了在格式化的時候怎樣使用不同的字符串表現形式。特別來講,`!r` 格式化代碼指明輸出使用 `__repr__()` 來代替默認的 `__str__()` 。你可以用前面的類來試著測試下: >>> p = Pair(3, 4) >>> print('p is {0!r}'.format(p)) p is Pair(3, 4) >>> print('p is {0}'.format(p)) p is (3, 4) >>> ## 討論 自定義 `__repr__()` 和 `__str__()` 通常是很好的習慣,因為它能簡化調試和實例輸出。例如,如果僅僅只是打印輸出或日志輸出某個實例,那么程序員會看到實例更加詳細與有用的信息。 `__repr__()` 生成的文本字符串標準做法是需要讓 `eval(repr(x)) == x` 為真。如果實在不能這樣子做,應該創建一個有用的文本表示,并使用 < 和 > 括起來。比如: >>> f = open('file.dat') >>> f <_io.TextIOWrapper name='file.dat' mode='r' encoding='UTF-8'> >>> 如果 `__str__()` 沒有被定義,那么就會使用 `__repr__()` 來代替輸出。 上面的 `format()` 方法的使用看上去很有趣,格式化代碼 `{0.x}` 對應的是第1個參數的x屬性。因此,在下面的函數中,0實際上指的就是 `self` 本身: def __repr__(self): return 'Pair({0.x!r}, {0.y!r})'.format(self) 作為這種實現的一個替代,你也可以使用 `%` 操作符,就像下面這樣: def __repr__(self): return 'Pair(%r, %r)' % (self.x, self.y)
                  <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>

                              哎呀哎呀视频在线观看