fork download
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import functools
  5.  
  6. class Abe(object):
  7.  
  8. def __init__(self, name, age, gender):
  9. self.name = name
  10. self.age = age
  11. self.gender = gender
  12.  
  13. def foo(func):
  14. @functools.wraps(func)
  15. def wrapper(*args,**kwargs):
  16. for k, v in self.__dict__.items():
  17. if k not in ("name", "gender"):
  18. yield {k, v}
  19. next(wrapper())
  20.  
  21. @foo
  22. def bar(self):
  23. pass
  24.  
  25.  
  26. def main():
  27. a = Abe("Abe", 60, "M")
  28. print(a.foo())
  29.  
  30.  
  31. if __name__ == '__main__':
  32. main()
Runtime error #stdin #stdout #stderr 0.02s 44632KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "<builtin>/app_main.py", line 75, in run_toplevel
  File "prog.py", line 6, in <module>
    class Abe(object):
  File "prog.py", line 21, in Abe
    @foo
  File "prog.py", line 19, in foo
    next(wrapper())
  File "prog.py", line 16, in wrapper
    for k, v in self.__dict__.items():
NameError: global name 'self' is not defined