在python中%r是什么意思

2024-04-26 21:02:04 发布

您现在位置:Python中文网/ 问答频道 /正文

以下语句中%r的含义是什么?

print '%r' % (1)

我想我听说过%s%d%f,但从没听说过。


Tags: 语句print含义
3条回答

它用repr()将替换项打印为字符串。

它调用对象上的^{},并插入结果字符串。

背景:

在Python中,有两个内置函数用于将对象转换为字符串:^{}^{}str应该是一个友好的、可读的字符串。repr应该包含有关对象内容的详细信息(有时,它们会返回相同的内容,例如整数)。按照惯例,如果有一个Python表达式将eval为另一个对象,即==,repr将返回这样一个表达式,例如

>>> print repr('hi')
'hi'  # notice the quotes here as opposed to...
>>> print str('hi')
hi

如果返回表达式对对象没有意义,repr应该返回一个由<;和&g t;符号包围的字符串,例如<blah>

回答你原来的问题:

%s<;->;^{}
%r<;->;^{}

此外:

通过实现^{}^{}方法,可以控制自己类的实例转换为字符串的方式。

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

相关问题 更多 >