是什么意思%r
在下面的声明中?
print '%r' % (1)
我想我听说过%s
, %d
, and %f
但从未听说过这个。
背景:
在Python中,有两个内置函数用于将对象转换为字符串:str vs. repr. str
应该是一个友好的、人类可读的字符串。repr
应该包含有关对象内容的详细信息(有时,它们会返回相同的内容,例如整数)。按照惯例,如果有一个 Python 表达式将求值为另一个对象 ==,repr
将返回这样的表达式,例如
>>> print repr('hi')
'hi' # notice the quotes here as opposed to...
>>> print str('hi')
hi
如果返回表达式对于对象没有意义,repr
应该返回一个由 符号包围的字符串,例如<blah>
.
回答你原来的问题:
%s
str
%r
repr
此外:
您可以通过实现来控制您自己的类的实例转换为字符串的方式__str__ and __repr__方法。
class Foo:
def __init__(self, foo):
self.foo = foo
def __eq__(self, other):
"""Implements ==."""
return self.foo == other.foo
def __repr__(self):
# if you eval the return value of this function,
# you'll get another Foo instance that's == to self
return "Foo(%r)" % self.foo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)