[英]Why does the python strtobool method return an Int instead of a bool?
strtobool是来自 python 标准库的出色 function。
然而,它返回一个 int 而不是 bool,需要包装它,例如bool(strtobool(x))
。
从表面上看,这似乎不直观且具有误导性,而且很容易忘记,尤其是在像 python 这样松散类型的语言中。
导致这种方法的设计决策是什么?
我不知道为什么strtobool()
返回一个 int。 在大多数情况下,int 可以用作 bool,但是,如果您确实需要 bool,那么我建议您在脚本中创建一个新的 function,如下所示:
from distutils.util import strtobool as stb
def strtobool(string: str)->bool: return bool(stb(string))
这允许调用strtobool()
所以它返回一个布尔值。
这可能是任何人的猜测。 distutils
已被弃用并在 Python 3.12 中被删除,根据PEP 632 ,特别是关于strtobool
,建议是自己重新实现它:
对于这些功能以及此处未提及的任何其他功能,您需要自己重新实现这些功能。 可以在https://docs.python.org/3.9/distutils/apiref.html找到旧文档
distutils.dir_util.create_tree
distutils.util.change_root
distutils.util.strtobool
因此,简而言之,不要使用它,在您的版本中,请随意返回适当的bool
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.