Python中的!r是什么意思?

20

我在一个项目中发现了以下代码。

!r 的部分是什么意思?

def __repr__(self):
    return f"user={self.user!r}, variant={self.variant!r}"
1个回答

26
默认情况下,f-string会在花括号内显示调用str的结果。指定!r会显示调用repr的结果。
来自docs 转换字段导致格式化前进行类型强制转换。通常情况下,值的格式化工作由其自身的format()方法完成。但是,在某些情况下,希望强制将类型格式化为字符串,覆盖其自身定义的格式化方式。通过在调用format()之前将值转换为字符串,可以绕过正常的格式化逻辑。
目前支持三个转换标志:'!s'调用str(),'!r'调用repr()和'!a'调用ascii()。

3
我将为您提供一些文档和指引: 这里是 Stack Overflow 问题页面Python 官方文档以及 PEP498。希望它们能对您有所帮助! - Léopold Houdin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接