【问题标题】:What does !r mean in Python? [duplicate]!r 在 Python 中是什么意思? [复制]
【发布时间】:2020-04-01 16:58:12
【问题描述】:

我在一个项目中找到了如下代码。

!r 部分是什么意思?

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

【问题讨论】:

    标签: python f-string


    【解决方案1】:

    默认情况下,f-string 显示在花括号内的值上调用 str 的结果。指定!r 会显示调用repr 的结果。

    来自docs

    转换字段在格式化之前会导致类型强制。通常,格式化一个值的工作是由值本身的 format() 方法完成的。但是,在某些情况下,需要强制将类型格式化为字符串,从而覆盖其自己的格式化定义。通过在调用 format() 之前将值转换为字符串,绕过了正常的格式化逻辑。

    目前支持三种转换标志:'!s' 调用 str() 值,'!r' 调用 repr() 和 '!a' 调用 ascii()。

    【讨论】:

    猜你喜欢
    • 2015-02-13
    • 2019-04-15
    • 2020-03-26
    • 2019-12-17
    • 2011-12-23
    • 2013-01-30
    • 1970-01-01
    • 2016-08-25
    • 2020-10-27
    相关资源
    最近更新 更多