在Python格式(f字符串)字符串中,!r是什么意思?

nk *_*ram 7 python python-3.6

我得到了python 3.6中新的f字符串的作用,但是如下面的代码片段所示,结尾!r呢?

def __repr__(self):
    return (f'Pizza({self.radius!r}, 'f'{self.ingredients!r})')
Run Code Online (Sandbox Code Playgroud)

Jim*_*ard 13

它只是调用repr提供的值。

通常,f字符串实际上并不需要它的用法,因为有了f字符串,您就可以做到repr(self.radius)这一点,而它的意图可以说更加清楚。

!r保留(repr),!s(str)和!a(ascii)只是为了简化与str.format替代项的兼容性,您不需要将它们与f字符串一起使用。

  • https://www.python.org/dev/peps/pep-0498/#sr-and-a-are-redundant 有关于 '!s'、'!r'、'!a' 的详细信息 (8认同)
  • 这并不是说 `!r` 在 f 字符串中没有任何作用,只是它看起来很少有用。 (2认同)