Python布尔比较与字符串比较
这个问题出于完美的渴望 我遇到这样的情况,我必须从post获取参数,并检查它是Python布尔比较与字符串比较,python,Python,这个问题出于完美的渴望 我遇到这样的情况,我必须从post获取参数,并检查它是True还是False(在python中),并相应地调用LOC 显然,读取的参数类型为,如果参数:始终返回True,则为 我现在有两个选择, 1.将转换为(编写自己的代码进行转换,或使用ast.literal\u eval或从distutils.util import strobool导入) 2.执行字符串比较,如if param==“True”: 问题是遵循什么样的最佳实践?我当然不会采用将字符串转换为布尔值的方法,
True
还是False
(在python中),并相应地调用LOC
显然,读取的参数类型为
,如果参数:始终返回True
,则为
我现在有两个选择,
1.将
转换为
(编写自己的代码进行转换,或使用ast.literal\u eval
或从distutils.util import strobool导入)
2.执行字符串比较,如if param==“True”:
问题是遵循什么样的最佳实践?我当然不会采用将字符串转换为布尔值的方法,这对于一个简单的逻辑语句来说开销太大了。
您应该首先确保参数的值为“True”或“False”
然后:
我当然不会将字符串转换为布尔值,这对于一个简单的逻辑语句来说开销太大了。
您应该首先确保参数的值为“True”或“False”
然后:
内存注意事项:
For String
sys.getsizeof("True")
>> 41
sys.getsizeof("False")
>> 42
For Boolean
sys.getsizeof(True)
>> 24
sys.getsizeof(False)
>> 24
内存注意事项:
For String
sys.getsizeof("True")
>> 41
sys.getsizeof("False")
>> 42
For Boolean
sys.getsizeof(True)
>> 24
sys.getsizeof(False)
>> 24
但是,正如@Adam ProbertI检查转换的运行时开销时所说的那样,您需要将字符串转换为bool。。将在运行测试后发布结果。您可以使用cprofile并检查程序中的运行时差异。内存方面的布尔运算占用更少的空间。但是,正如@Adam ProbertI在检查转换的运行时开销时所说,将字符串转换为布尔运算会带来开销。。将在运行测试后发布结果。您可以使用cprofile并检查程序中的运行时差异。内存方面的布尔值占用较少的空间。请向下投票者解释原因。请向下投票者解释原因。您是对的,read
参数已经占用了内存,将其转换为bool将增加额外的开销。您是对的,read
参数已经占用了内存,将其转换为bool将增加额外的开销。