fork download
  1. class Registry:
  2. def __init__(self):
  3. self.names = []
  4.  
  5. def register(self, func):
  6. self.names.append(func.__name__)
  7. return func
  8.  
  9. def apply(self, cls):
  10. for name in self.names:
  11. print(cls, name)
  12. print(getattr(cls, name))
  13.  
  14. def hiding_decorator(fn):
  15. def wrapper(*args, **kwargs):
  16. print("do some logging etc.")
  17. return fn(*args, **kwargs)
  18. return wrapper
  19.  
  20. registry = Registry()
  21. @registry.apply
  22. class ModelA(object):
  23. @hiding_decorator
  24. @registry.register
  25. def a_method(self):
  26. pass
Success #stdin #stdout 0.1s 14132KB
stdin
Standard input is empty
stdout
<class '__main__.ModelA'> a_method
<function hiding_decorator.<locals>.wrapper at 0x14775e8327a0>