首页 > 解决方案 > 使用返回 True/False 的 if 语句而不是直接将条件表达式转换为 bool 的技术原因

问题描述

我正在查看一门名为“高级 Python”的在线课程,并注意到一些使用if返回的语句True而不是直接将条件表达式作为布尔值返回的情况。下面是一个基于我在课程中看到的示例:

def foo(x):
    if x.isupper():
       return True
    return False


def bar(x):
    return bool(x.isupper())


def usage():
    s = "Hello World!"
    return list(filter(foo, s)

由于我在其他语言方面更有经验,是否有技术上的理由更foo喜欢bar?也许这是一种与不一定知道论点类型有关的防御方式?

标签: python

解决方案


也许由于 Python 是动态类型的,因此 usingfoo方法会返回对返回类型的更多控制的感知 - 但这是无用的。除此之外,这些方法是等效的。


推荐阅读