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))
print(aRepr.repr_TextIOWrapper(sys.stdin,1))
基础即基石,一步一阶梯
reprlib库学习笔记主要内容1. class reprlib.Repr该类与内置函数repr()功能类似,提供对实现函数有用的格式化服务。该类添加了不同对象类型的大小限制,以避免生成过长的表示。2. reprlib.aRepr这是Repr的一个实例,用来提供repr()功能。修改属性可以影响大小限制。3. reprlib.repr(obj)是aRepr的repr()方法。和内置repr()功能类似。另外,本模块还提供了一个修饰器,用来检测__repr__()迭代请求并用占位符字符串代替。
文章目录前言一、格式化输出二、模板三、使用二进制数据记录格式四、多线程五、日志六、弱引用七、用于操作列表的工具八、十进制浮点运算python官方文档链接python官方标准库链接
余生平,怎一个懒字了得。
一、格式化输出
reprlib 模块提供了一个定制化版本的 repr() 函数,用于缩略显示大型或深层嵌套的容器对象:
>>> import reprlib
>>> reprlib.repr(set('supercalifragilisticexpialidoci
Python打印值的时候会保持该值在Python代码中的状态,不是用户所希望看到的状态。而使用print打印值则不一样,print打印出来的值是用户所希望看到的状态。
例如:>>> "Hello, world!"
'Hello, world!' # Python打印出来的值是给python理解的,这里python理解为字符串,所以带着引号
>>> 1000L # python理
python装饰器的使用
其中recursive_repr装饰器的目的是防止递归,提供指定返回值fillvalue
在实例化Mylist为对象m后,再递归调用m.append(m),执行两次wrapper。原因是第一次执行wrapper后进入def __repr__后,有一个递归对象m,再执行wrapper。
from _thread import get_ident
def recursive_repr(fillvalue=',,,'):
python中,sys模块里面有一个getsizeof函数,其可以获取某个对象的内存占用,但是要注意的是,该函数只能获取对象本身直接占用的内存,该对象所指向的引用所占据的内存并不会被计算在内;python中,比如当对象是一个容器时,那么getsizeof函数就无法获取该容器内部所有内容的内存占用了,返回的只是容器本身的内存占用,比如字典。
对此,官方文档给出了一种途径...
在Python中有些方法名、属性名的前后都添加了双下划线,这种方法、属性通常都属于Python的特殊方法和特殊属性,开发者可以通过重写这些方法或者直接调用这些方法来实现特殊的功能。其实前面见过的构造方法__init__() 就是一种特殊方法,开发者可以通过重写类中的__init__方法实现自己想要的初始化逻辑。
Python类中的特殊方法、特殊属性有些需要开发者重新写,有些则可以直接调用。
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴
百度的时候大部分时间是推荐安装Anaconda3 。Anaconda3 强大归强大,但是需要下载并且需要进行配置环境才可以用,如果觉得麻烦,不妨用下面的方式解决:
1.python怎么装matplotlib
python安装"matplotlib"的步骤如下:
(1)首先确保已经安装python,然后用pip来安装matplotlib模块。
(2)进入到cmd窗口下,执行python -m pip...
运行python程序时,经常会遇到一种错误类型:ImportError: No module named xxx,其中xxx一般是一个库。比如,我最近跑GitHub上的代码时,就提示ImportError: No module named librosa。有两种方法可以解决这个问题。
方法1:检查python中是否已安装该库。首先在命令行中输入 pip list,检测python是否已安装该库。...