【发布时间】:2020-06-09 04:05:47
【问题描述】:
可能让我感到羞耻的是,我刚刚开始在我的 python 代码中包含类型检查。大多数类型检查都是直截了当的,但我对处理可以返回 None 的函数的 pythonic 方式有点迷茫
例如
threads = os.cpu_count() * 1.2
这会引发 MyPy 错误
Mypy: Unsupported operand types for * ("None" and "float")
所以为了摆脱这种情况,我将代码更改为
default = (os.cpu_count() if os.cpu_count() is not None else 1.0) * 1.2
但这给出了完全相同的错误。
处理这个问题的最佳方法是什么?
【问题讨论】:
-
default = (os.cpu_count() or 1) * 1.2? -
反模式的人真的不喜欢这个答案,但 MyPy 似乎很高兴
标签: python python-3.x types mypy