我需要传递一个函数作为一个参数,作为布尔值"不是"。我试过这样的事情,但它没有用,因为not
不是一个功能。
theFunction(callback=not) # Doesn't work :(
我需要执行以下操作,但是我想知道是否存在执行此简单作业的任何预定义函数,因此我不必像这样重新定义它:
theFunction(callback=lambda b: not b, anotherCallback=lambda b: not b)
注意: 我无法改变我必须传递这样一个函数的事实,因为它是一个API调用。
答案 0 :(得分:26)
是的,有operator
模块:https://docs.python.org/3.6/library/operator.html
import operator
theFunction(callback=operator.not_)
答案 1 :(得分:14)
not
不是函数,而是关键字。这意味着你无法传递参考。有充分的理由,因为它允许Python" 短路"某些表达方式。
但是,您可以使用not_
包的operator
(带下划线):
from operator import not_
theFunction(callback=not_, anotherCallback=not_)