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