Python TypeError:传递给对象的非空格式字符串。__format__

Python TypeError:传递给对象的非空格式字符串。__format__,第1张

Python TypeError:传递给对象的非空格式字符串。__format__

bytes
对象没有自己的
__format__
方法,因此使用默认的from
object

>>> bytes.__format__ is object.__format__True>>> '{:20}'.format(object())Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: non-empty format string passed to object.__format__

这只是意味着您不能在这些格式上使用简单,无格式,未对齐的格式。显式转换为字符串对象(就像通过解码

bytes
到一样
str
)以获取格式规范支持。

您可以使用

!s
字符串转换使转换明确:

>>> '{!s:20s}'.format(b"Hi")"b'Hi'    ">>> '{!s:20s}'.format(object())'<object object at 0x1100b9080>'

object.__format__
明确拒绝格式字符串,以避免隐式字符串转换,特别是因为格式设置指令是特定于类型的。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5643426.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存