键入函数装饰器的正确方法是什么print_before
,以便包装函数具有正确的类型,但我不能在不起作用的类上使用装饰器?
谢谢你
def print_before(func):
def func_wrapper(self, *args):
self.print_hi()
return func(self, *args)
return func_wrapper
class PrintThings:
def print_hi(self):
print("hi")
@print_before
def add_nums(self, a: int, b: int) -> int:
return a + b
pt = PrintThings()
pt.add_nums(5, 4)
class ShouldNotWork:
@print_before
def add_nums(self, a: int, b: int) -> int:
return a + b
snw = ShouldNotWork()
snw.add_nums(4, 5)