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



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

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

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

在这一点上,可能是任何人的猜测。根据PEP632,distutils已被弃用,并在Python 3.12中被删除,特别是关于strtobool,建议您自己重新实现:

对于这些功能以及此处未提及的任何其他功能,您需要自己重新实现该功能。遗留文档可在https://docs.python.org/3.9/distutils/apiref.html

  • distutils.dir_util.create_tree
  • distutils.util.change_root
  • distutils.util.strtobool

因此,简而言之,不要使用它,在您的版本中,可以随意返回适当的bool

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

from distutils.util import strtobool as stb
def strtobool(string: str)->bool: return bool(stb(string))

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

相关内容

  • 没有找到相关文章

最新更新