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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 導航 - [索引](../genindex.xhtml "總目錄") - [模塊](../py-modindex.xhtml "Python 模塊索引") | - [下一頁](enum.xhtml "enum --- Support for enumerations") | - [上一頁](pprint.xhtml "pprint --- 數據美化輸出") | - ![](https://box.kancloud.cn/a721fc7ec672275e257bbbfde49a4d4e_16x16.png) - [Python](https://www.python.org/) ? - zh\_CN 3.7.3 [文檔](../index.xhtml) ? - [Python 標準庫](index.xhtml) ? - [數據類型](datatypes.xhtml) ? - $('.inline-search').show(0); | # [`reprlib`](#module-reprlib "reprlib: Alternate repr() implementation with size limits.") --- Alternate [`repr()`](functions.xhtml#repr "repr") implementation **Source code:** [Lib/reprlib.py](https://github.com/python/cpython/tree/3.7/Lib/reprlib.py) \[https://github.com/python/cpython/tree/3.7/Lib/reprlib.py\] - - - - - - The [`reprlib`](#module-reprlib "reprlib: Alternate repr() implementation with size limits.") module provides a means for producing object representations with limits on the size of the resulting strings. This is used in the Python debugger and may be useful in other contexts as well. This module provides a class, an instance, and a function: *class* `reprlib.``Repr`Class which provides formatting services useful in implementing functions similar to the built-in [`repr()`](functions.xhtml#repr "repr"); size limits for different object types are added to avoid the generation of representations which are excessively long. `reprlib.``aRepr`This is an instance of [`Repr`](#reprlib.Repr "reprlib.Repr") which is used to provide the [`repr()`](#reprlib.repr "reprlib.repr") function described below. Changing the attributes of this object will affect the size limits used by [`repr()`](#reprlib.repr "reprlib.repr") and the Python debugger. `reprlib.``repr`(*obj*)This is the [`repr()`](#reprlib.Repr.repr "reprlib.Repr.repr") method of `aRepr`. It returns a string similar to that returned by the built-in function of the same name, but with limits on most sizes. In addition to size-limiting tools, the module also provides a decorator for detecting recursive calls to [`__repr__()`](../reference/datamodel.xhtml#object.__repr__ "object.__repr__") and substituting a placeholder string instead. `@``reprlib.``recursive_repr`(*fillvalue="..."*)Decorator for [`__repr__()`](../reference/datamodel.xhtml#object.__repr__ "object.__repr__") methods to detect recursive calls within the same thread. If a recursive call is made, the *fillvalue* is returned, otherwise, the usual [`__repr__()`](../reference/datamodel.xhtml#object.__repr__ "object.__repr__") call is made. For example: ``` >>> from reprlib import recursive_repr >>> class MyList(list): ... @recursive_repr() ... def __repr__(self): ... return '<' + '|'.join(map(repr, self)) + '>' ... >>> m = MyList('abc') >>> m.append(m) >>> m.append('x') >>> print(m) <'a'|'b'|'c'|...|'x'> ``` 3\.2 新版功能. ## Repr Objects [`Repr`](#reprlib.Repr "reprlib.Repr") instances provide several attributes which can be used to provide size limits for the representations of different object types, and methods which format specific object types. `Repr.``maxlevel`Depth limit on the creation of recursive representations. The default is `6`. `Repr.``maxdict``Repr.``maxlist``Repr.``maxtuple``Repr.``maxset``Repr.``maxfrozenset``Repr.``maxdeque``Repr.``maxarray`Limits on the number of entries represented for the named object type. The default is `4` for [`maxdict`](#reprlib.Repr.maxdict "reprlib.Repr.maxdict"), `5` for [`maxarray`](#reprlib.Repr.maxarray "reprlib.Repr.maxarray"), and `6` for the others. `Repr.``maxlong`Maximum number of characters in the representation for an integer. Digits are dropped from the middle. The default is `40`. `Repr.``maxstring`Limit on the number of characters in the representation of the string. Note that the "normal" representation of the string is used as the character source: if escape sequences are needed in the representation, these may be mangled when the representation is shortened. The default is `30`. `Repr.``maxother`This limit is used to control the size of object types for which no specific formatting method is available on the [`Repr`](#reprlib.Repr "reprlib.Repr") object. It is applied in a similar manner as [`maxstring`](#reprlib.Repr.maxstring "reprlib.Repr.maxstring"). The default is `20`. `Repr.``repr`(*obj*)The equivalent to the built-in [`repr()`](functions.xhtml#repr "repr") that uses the formatting imposed by the instance. `Repr.``repr1`(*obj*, *level*)Recursive implementation used by [`repr()`](#reprlib.Repr.repr "reprlib.Repr.repr"). This uses the type of *obj* to determine which formatting method to call, passing it *obj* and *level*. The type-specific methods should call [`repr1()`](#reprlib.Repr.repr1 "reprlib.Repr.repr1") to perform recursive formatting, with `level - 1` for the value of *level* in the recursive call. `Repr.``repr_TYPE`(*obj*, *level*)Formatting methods for specific types are implemented as methods with a name based on the type name. In the method name, **TYPE** is replaced by `'_'.join(type(obj).__name__.split())`. Dispatch to these methods is handled by [`repr1()`](#reprlib.Repr.repr1 "reprlib.Repr.repr1"). Type-specific methods which need to recursively format a value should call `self.repr1(subobj, level - 1)`. ## Subclassing Repr Objects The use of dynamic dispatching by [`Repr.repr1()`](#reprlib.Repr.repr1 "reprlib.Repr.repr1") allows subclasses of [`Repr`](#reprlib.Repr "reprlib.Repr") to add support for additional built-in object types or to modify the handling of types already supported. This example shows how special support for file objects could be added: ``` import reprlib import sys class MyRepr(reprlib.Repr): def repr_TextIOWrapper(self, obj, level): if obj.name in {'<stdin>', '<stdout>', '<stderr>'}: return obj.name return repr(obj) aRepr = MyRepr() print(aRepr.repr(sys.stdin)) # prints '<stdin>' ``` ### 導航 - [索引](../genindex.xhtml "總目錄") - [模塊](../py-modindex.xhtml "Python 模塊索引") | - [下一頁](enum.xhtml "enum --- Support for enumerations") | - [上一頁](pprint.xhtml "pprint --- 數據美化輸出") | - ![](https://box.kancloud.cn/a721fc7ec672275e257bbbfde49a4d4e_16x16.png) - [Python](https://www.python.org/) ? - zh\_CN 3.7.3 [文檔](../index.xhtml) ? - [Python 標準庫](index.xhtml) ? - [數據類型](datatypes.xhtml) ? - $('.inline-search').show(0); | ? [版權所有](../copyright.xhtml) 2001-2019, Python Software Foundation. Python 軟件基金會是一個非盈利組織。 [請捐助。](https://www.python.org/psf/donations/) 最后更新于 5月 21, 2019. [發現了問題](../bugs.xhtml)? 使用[Sphinx](http://sphinx.pocoo.org/)1.8.4 創建。
                  <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>

                              哎呀哎呀视频在线观看