【问题标题】:Can custom formatting through the % operator be done in Python?可以在 Python 中通过 % 运算符进行自定义格式化吗?
【发布时间】:2023-04-04 03:42:02
【问题描述】:

是否可以在 Python 中使用% 运算符以自己特定的方式格式化一个类?我对格式字符串类似于%3z 的情况感兴趣(不仅仅是%s%r,它们由__str__()__repr__() 方法处理)。换一种说法:Python 2.6+ 允许类定义 __format__() 方法:% 运算符是否有等价物?

我试图定义 __rmod()__ 方法,希望 str.__mod__() 会返回 NotImplemented 并且 __rmod()__ 会被调用,但 "%3z" % … 会返回 ValueError: unsupported format character 'z' 而不是......

【问题讨论】:

  • 我很确定这不可能。您有什么理由避免使用格式?
  • 有一个原因:格式将应用于我的不确定性包的不确定性数字,它适用于所有版本的 Python从 2.3 开始(版本 2.3 到 2.5只有% 而不是format())。

标签:
python
string-formatting