Ответ 1
Да, есть модуль operator
: https://docs.python.org/3.6/library/operator.html
import operator
theFunction(callback=operator.not_)
Мне нужно передать функцию как параметр, который работает как логическое "не". Я пробовал что-то вроде этого, но это не сработало, потому что not
не является функцией.
theFunction(callback=not) # Doesn't work :(
Мне нужно сделать следующее, но Интересно, существует ли какая-либо предопределенная функция, выполняющая эту простую работу, поэтому мне не нужно ее переопределять следующим образом:
theFunction(callback=lambda b: not b, anotherCallback=lambda b: not b)
Примечание. Я не могу изменить тот факт, что мне нужно передать такую функцию, потому что это вызов API.
Да, есть модуль operator
: https://docs.python.org/3.6/library/operator.html
import operator
theFunction(callback=operator.not_)
not
не функция, а ключевое слово. Значит, вы не можете передать ссылку. Есть веские причины, поскольку он позволяет Python "коротко замыкать" определенные выражения.
Однако вы можете использовать not_
(с подчеркиванием) пакета operator
:
from operator import not_
theFunction(callback=not_, anotherCallback=not_)