类的装饰器

def demo(funce):
  print('======')
  return funce
# @demo  #test=demo(test)
# def test():
#   print('test函数运行')
# test()     #打开与不打开,不一样
@demo    #Foo=demo(Foo)
class Foo():
  pass

F1 = Foo()
print(F1)


'''打印部分
======
<__main__.Foo object at 0x00BED6B0>
'''
def demo(obj):
  print('======',obj)
  obj.a = 1
  obj.b = 2
  obj.c = 3
  return obj
@demo    #Foo=demo(Foo)
class Foo():
  pass
F1 = Foo()
print(F1)
print(Foo.__dict__)



'''打印部分
====== <class '__main__.Foo'>
<__main__.Foo object at 0x00BED5B0>
{'a': 1, 'c': 3, '__doc__': None, '__module__': '__main__', 
'__dict__': <attribute '__dict__' of 'Foo' objects>, '__weakref__':
<attribute '__weakref__' of 'Foo' objects>, 'b': 2} '''

 函数的装饰器

def demo(obj):
  print('======',obj)
  obj.a = 1
  obj.b = 2
  obj.c = 3
  return obj
@demo    #test=demo(test)
def test():
  print('运行test')
# test()
print(test.__dict__)

'''打印部分
====== <function test at 0x00BEE270>
{'a': 1, 'c': 3, 'b': 2}
'''

  

 

  

posted @ 2019-05-06 06:00  挑水工  阅读(101)  评论(0编辑  收藏  举报