You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中{!r}格式符的作用及在__repr__方法内的使用疑问

Python {!r} 格式符用法说明

{!r} 是Python str.format() 语法体系下的转换标志,作用是调用传入值的__repr__()内置方法,将该方法的返回值作为内容插入到字符串的对应位置。

你给出的示例代码:

def __repr__(self):
  return "{!r}".format(self.__dict__)

在这里不会出现循环调用问题:{!r} 触发的是self.__dict__(字典类型实例)自身的__repr__方法,而非当前类的__repr__方法,这段代码的效果等价于直接返回repr(self.__dict__)。

{!r} 和另外两个常见的转换标志区别如下:

  • !s:调用传入值的__str__()方法,返回适合人类阅读的字符串表示,和直接写{}无转换标志的默认行为一致
  • !r:调用传入值的__repr__()方法,返回官方标准的、可被解析器识别的对象表示,通常输出会附带类型特征标记,比如字符串会自带引号
  • !a:调用传入值的ascii()方法,返回ASCII编码的对象表示,非ASCII字符会转义为\u、\x等格式

你可以在Python官方文档的「字符串格式化」「格式规格迷你语言」相关章节查到全部的转换标志说明。

内容的提问来源于stack exchange,提问作者WhiteRau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:15:05