Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python布尔比较与字符串比较_Python - Fatal编程技术网

Python布尔比较与字符串比较

Python布尔比较与字符串比较,python,Python,这个问题出于完美的渴望 我遇到这样的情况,我必须从post获取参数,并检查它是True还是False(在python中),并相应地调用LOC 显然,读取的参数类型为,如果参数:始终返回True,则为 我现在有两个选择, 1.将转换为(编写自己的代码进行转换,或使用ast.literal\u eval或从distutils.util import strobool导入) 2.执行字符串比较,如if param==“True”: 问题是遵循什么样的最佳实践?我当然不会采用将字符串转换为布尔值的方法,

这个问题出于完美的渴望

我遇到这样的情况,我必须从post获取参数,并检查它是
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将增加额外的开销。