猿问

在 Python 中将潜在的 bool 转换为 bool,有什么缺点吗?

在我的 python 代码中,我将一些 bool() 转换为我知道可能已经是布尔值的变量。这有什么缺点吗?(性能等)


这是我正在使用的函数的基本克隆。


import re

pattern= "[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


萧十郎
浏览 140回答 3
3回答

慕慕森

没有看到示例代码就很难评论,但转换为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 herea = []if a:    pass  # won't get here.变量的真实性通常在 Python 中被利用,并且使代码更具可读性。花时间习惯它的工作方式可能比将东西包装在bool.
随时随地看视频慕课网APP

相关分类

Python
我要回答