Python bool compare vs string compare



这个问题是出于完美的渴望。

遇到过这样的情况,我必须从 post 获取参数并检查它是True还是False(在 python 中),并相应地调用 LOC。

显然,参数读取的类型是 <str> if param:总是返回 True

我现在有两个选择,
1. 将<str>转换为<bool>(编写自己的代码进行转换,或使用ast.literal_eval或导入from distutils.util import strtobool
2.像if param == "True":一样进行字符串比较

问题是要遵循的最佳做法是什么?

我当然不会走将字符串转换为布尔值的路线,这对于简单的逻辑语句来说开销太大了。应首先确保参数为值"True"或"False"之一。

然后:

if (param == 'True'):
    # True code here
else:
    # False code here

内存注意事项:

For String
sys.getsizeof("True")
>> 41
sys.getsizeof("False")
>> 42
For Boolean
sys.getsizeof(True)
>> 24
sys.getsizeof(False)
>> 24