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}
'''