Следующий код выдает ValueError («неверная сигнатура метода»)
Код: Выделить всё
import inspect
class Foo:
boo = lambda: 'baa'
print(inspect.signature(Foo().boo))
Почему? Изменение его на boo = лямбда x: 'baa' не приводит к ошибке. Кажется, что Python автоматически связывает объект (экземпляр класса) с лямбда-функцией, но мне это кажется странным (значит, лямбды фактически такие же, как и обычные определения?).
Когда мы запускаем следующее:
Код: Выделить всё
import inspect
class Foo:
boo = lambda x: x
print(Foo().boo())
Мы получаем объект , так что на самом деле он просто привязывает объект к лямбде.
Но это не объясняет, почему не удается проверить.signature.
Подробнее здесь:
https://stackoverflow.com/questions/793 ... ass-member