Подтвердить что ты не робот

Python: передать "не" в качестве лямбда-функции

Мне нужно передать функцию как параметр, который работает как логическое "не". Я пробовал что-то вроде этого, но это не сработало, потому что not не является функцией.

theFunction(callback=not) # Doesn't work :(

Мне нужно сделать следующее, но Интересно, существует ли какая-либо предопределенная функция, выполняющая эту простую работу, поэтому мне не нужно ее переопределять следующим образом:

theFunction(callback=lambda b: not b, anotherCallback=lambda b: not b)

Примечание. Я не могу изменить тот факт, что мне нужно передать такую ​​функцию, потому что это вызов API.

4b9b3361

Ответ 2

not не функция, а ключевое слово. Значит, вы не можете передать ссылку. Есть веские причины, поскольку он позволяет Python "коротко замыкать" определенные выражения.

Однако вы можете использовать not_ (с подчеркиванием) пакета operator:

from operator import not_

theFunction(callback=not_, anotherCallback=not_)