python - TypeError:不支持的格式字符串在 Python 中使用 f-string 传递给 NoneType.__format__
问题描述
在将我的变量格式化为 11 个字符的一致宽度时,我注意到一些奇怪的事情:
>>> a = 1234
>>> b = None
>>> f'{a}'
'1234'
>>> f'{b}'
'None'
>>> f'{a:>11}'
' 1234'
>>> f'{b:>11}'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported format string passed to NoneType.__format__
解决方案
您会认为使用 f 字符串将消除对 的显式调用的需要str
,但 f 字符串的构造会重新路由到对 的调用b.__format__
。
您需要确保b
不是None
通过调用str
:
>>> f'{str(b):>11}'
' None'
推荐阅读
- javascript - Material UI React Autocomplete TypeError
- php - php 表单,在将帖子提交到两个数据库表时
- javascript - HTML“变量”到Javascript
- classification - 使用 PCA 降维后的分类
- android - LifecycleService 和 Service 类有什么区别?
- flutter - 如何在颤动中将数据传递到另一个页面?
- javascript - window.scroll() 在 iOS 上没有滚动,几乎没有移动
- regex - 谷歌表正则表达式
- laravel - Laravel(Livewire)中的组件拆分和保留参数
- r - R: read_fwf () 从文件夹中读取多个文本文件,然后将 csv 文件写入同一个文件夹(即,将文本文件的文件夹转换为 csv 文件的文件夹)