!r 叫什么?

Can*_*e S 5 python syntax

我第一次看到这个。我想知道!r代码的最后一行调用了什么,以便我可以搜索它。我在以下位置找到了这段代码:https : //adamj.eu/tech/2020/08/10/a-guide-to-python-lambda-functions/

class Puppy:
    def __init__(self, name, cuteness):
        self.name = name
        self.cuteness = cuteness

    def __repr__(self):
        return f"Puppy({self.name!r}, {self.cuteness!r})"
Run Code Online (Sandbox Code Playgroud)

koj*_*iro 9

它是一个格式字符串转换标志,它告诉格式化程序repr在格式化字符串之前调用对象。

当前支持三种转换标志:'!s'哪个调用str()值,'!r'哪个调用repr()'!a'哪个调用ascii().