在我的 python 代码中,我将一些 bool() 转换为我知道可能已经是布尔值的变量。这有什么缺点吗?(性能等)这是我正在使用的函数的基本克隆。import repattern= "[A-Z]\w[\s]+:"other_cond= "needs_to_be_in_the_text"def my_func(to_check: str) -> bool: res = re.search(pattern, to_check) res2 = other_cond in to_check return bool(res), bool(res2) # res2 either None or True# I need boolean returns because later in my code I add all these # returned values to a list and use min(my_list) on it. to see if# there's any false value in there. min() on list with None values causes exception
3 回答
慕慕森
TA贡献1856条经验 获得超17个赞
没有看到示例代码就很难评论,但转换为bool可能会损害代码的可读性。例如,如果语句隐式地检查语句的真实性,因此添加bool不会给你任何东西。
a = [1,2,3]
if a:
pass
与包装在 bool 中,这意味着更多阅读。
if bool(a):
pass
如果您要分配给新变量,则意味着要跟踪更多事情,并且可能会引入错误,从而使铸造变量和原始变量不同步。
a = [1,2,3]
a_bool = bool(a)
if a_bool:
pass # will hit
a = []
if a_bool:
pass # will still get here, even though you've updated a
如果您不投射,则没有什么可跟踪的:
a = [1,2,3]
if a:
pass # will get here
a = []
if a:
pass # won't get here.
变量的真实性通常在 Python 中被利用,并且使代码更具可读性。花时间习惯它的工作方式可能比将东西包装在bool.
添加回答
举报
0/150
提交
取消