在O Reilly编程Python书籍中有一个代码示例,它在lambda函数中使用OR运算符。文本声明“[代码]使用or运算符强制运行两个表达式”。在
这是怎么工作的?为什么?在
widget = Button(None, # but contains just an expression
text='Hello event world',
command=(lambda: print('Hello lambda world') or sys.exit()) )
widget.pack()
widget.mainloop()
Tags:
Python中的每个函数都返回一个值。如果没有显式的return语句,则返回
None
。None
作为布尔表达式计算结果为False
。因此,print
返回None
,并且始终计算or
表达式的右侧。在布尔
or
运算符通过按从左到右的顺序计算候选值,返回第一个出现的truthy值。所以在您的例子中,它首先用于打印'Hello lambda world'
,因为它返回None
(被认为是错误的),然后它将计算sys.exit()
,从而结束程序。在Python Documentation:
相关问题 更多 >
编程相关推荐