Tag: repr

__repr __()函数的最佳输出types和编码实践?

最近,我在__repr__() , format()和编码方面遇到了很多麻烦。 __repr__()的输出应该被编码还是一个unicodestring? Python中的__repr__()的结果是否有最好的编码? 我想要输出的确有非ASCII字符。 我使用Python 2.x,并希望编写可轻松适应Python 3的代码 # -*- coding: utf-8 -*- from __future__ import unicode_literals, print_function # The 'Hello' literal represents a Unicode object 以下是一些困扰我的附加问题,我正在寻找解决scheme: 打印到一个UTF-8terminal应该工作(我有sys.stdout.encoding设置为UTF-8 ,但它是最好的,如果其他情况下也工作)。 输出到一个文件(用UTF-8编码)应该工作(在这种情况下, sys.stdout.encoding是None )。 我的许多__repr__()函数的代码目前有许多return ….encode('utf-8') ,这很重。 有什么强大的,更轻? 在某些情况下,我甚至有像return ('<{}>'.format(repr(x).decode('utf-8'))).encode('utf-8')丑陋野兽,的对象被解码,放入格式化string,然后重新编码。 我想避免这种复杂的转变。 为了编写简单的__repr__()函数,对于这些编码问题,你会推荐怎么做呢?

访问对象内存地址

当你在Python中调用object.__repr__()方法时,你会得到这样的结果: < main。testing对象在0x2aba1c0cf890> 如果你重载__repr__() ,有没有办法获得内存地址的保留,否则调用super(Class, obj).__repr__()并将其重新排列?

了解Python中的repr()函数

repr() :可评估的对象的string表示forms(可以是“eval()”it,表示它是一个string表示forms,用于计算Python对象) 换一种说法: >>> x = 'foo' >>> repr(x) "'foo'" 问题: 当我做repr(x)时,为什么我会得到双引号? (当我做str(x)时,我不会得到它们) 为什么当我做eval("'foo'")而不是x是哪个对象'foo'时候会得到'foo' ?

Python中__str__和__repr__的区别

Python __str__和__repr__什么区别?

为什么反斜杠出现两次?

当我创建一个包含反斜杠的字符串时,它们会被重复: >>> my_string = "why\does\it\happen?" >>> my_string 'why\\does\\it\\happen?' 为什么?