在python中进行如下构造是有效的:
def a(): return 0 if a: print "Function object was considered True" else: print "Function object was considered False"
我想问一个函数指针被评估为True的逻辑是什么。
为什么在语言中插入这种构造?
True在Python中有很多评估结果。从关于布尔运算符的文档中:
True
在布尔运算的上下文中,以及当控制流语句使用表达式时,以下值将解释为false:False,,None所有类型的数字零以及空字符串和容器(包括字符串,元组,列表,字典,集合和Frozensets)。所有其他值均解释为true。
False
None
像很多东西一样,Python中的函数是 对象 ,而不是空的。因此,在布尔上下文中,它们的值为True。