def a(self):
print ("A work")
return self
@a
def b():
print ("B work")
if name== "main":
b()
print("-"*10)
a(lambda x :b())
Декоратор возвращает функцию, но вызывать её некому. Дополнительная пара скобок в конце — вызовет.
И да, называть self что-либо кроме первого параметра методов — не принято.
Traceback (most recent call last): File "c:\Users\Юзер\Documents\python\test.py", line 12, in <module> a(lambda x :b())() TypeError: <lambda>() missing 1 required positional argument: 'x'
А, ну да, ты ж сделал лямбду, у неё параметр. Без параметра не запустишь.
c = a(b)() вот так просто
Да, именно.
Обсуждают сегодня