为什么 python strtobool 方法返回 Int 而不是 bool?

Jet*_*hro 5 python

strtobool是 python 标准库中的一个很棒的函数。

然而,它返回一个 int 而不是 bool,需要包装它,例如bool(strtobool(x))

从表面上看,这似乎不直观且具有误导性,而且很容易忘记,尤其是在像 python 这样的松散类型语言中。
导致这种方法的设计决策是什么?

Duc*_*sEL 1

我不知道为什么strtobool()返回一个 int 。在大多数情况下,int 可以用作 bool,但是,如果您确实需要 bool,那么我建议您在脚本中创建一个新函数,如下所示:

from distutils.util import strtobool as stb
def strtobool(string: str)->bool: return bool(stb(string))
Run Code Online (Sandbox Code Playgroud)

这允许调用,strtobool()因此它返回一个布尔值。