我在一个项目中找到了以下代码。
什么是!r部分是什么意思?
def __repr__(self):
return f"user={self.user!r}, variant={self.variant!r}"
Run Code Online (Sandbox Code Playgroud)
sna*_*erb 11
默认情况下,f 字符串显示对花括号内的值调用str的结果。指定!r显示调用repr的结果。
从 文档
转换字段在格式化之前会导致类型强制。通常,格式化值的工作是由值本身的format () 方法完成的。但是,在某些情况下,需要强制将类型格式化为字符串,覆盖其自己的格式化定义。通过在调用format ()之前将值转换为字符串,绕过了正常的格式化逻辑。
当前支持三种转换标志:'!s' 调用 str() 值,'!r' 调用 repr() 和 '!a' 调用 ascii()。