
code
class A: key: str = None sleep_seconds: int = 10 def run_forever(func): @wraps(func) def wrapped(self, *args, **kwargs): while True: func(self, *args, **kwargs) time.sleep(self.sleep_seconds) return wrapped @run_forever def test(self): print(123) A().test() 这样虽然可以,但是 pycharm 标黄,而且觉得写的不对。另装饰器用到了类的参数。 有没有更好 /正确的写法? 虽然这样没问题,但是
1 frostming 2020-12-11 17:37:12 +08:00 当然是用 descriptor,把 func 包一层 def __get__(self, ins, kls) 里面就能拿到类的参数,然后返回一个更新了的自己 |