为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

萧十郎 2021-06-18 18:48:53
在我的 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.


查看完整回答
反对 回复 2021-06-22
  • 3 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信