为什么函数对象在python中评估为True?

发布于 2021-01-29 15:04:40

在python中进行如下构造是有效的:

def a(): 
    return 0

if a: 
    print "Function object was considered True"
else:  
    print "Function object was considered False"

我想问一个函数指针被评估为True的逻辑是什么。

为什么在语言中插入这种构造?

关注者
0
被浏览
96
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    True在Python中有很多评估结果。从关于布尔运算符文档中

    在布尔运算的上下文中,以及当控制流语句使用表达式时,以下值将解释为false:False,,None所有类型的数字零以及空字符串和容器(包括字符串,元组,列表,字典,集合和Frozensets)。所有其他值均解释为true。

    像很多东西一样,Python中的函数是 对象 ,而不是空的。因此,在布尔上下文中,它们的值为True。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看