这个问题是出于完美的渴望。
我遇到过这样的情况,我必须从 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