装饰器的基本实现:
def kuozhan(func):
def newruixin():
#扩展功能:
print('如果我说如果‘)
#调用基本函数
func
print('没有如果‘)
#增加返回值
return newruixin
#基本函数
@kuozhan #ruixin = kuozhan(ruixin) 扩展之后的函数要重新赋值给基本函数,
def ruixin():
print('很难实现‘)
#调用基本函数
ruixin()
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# 和带有返回值的装饰器
def kuozhann(func):
def newruixin():
print('如果没有如果')
result=func()
print('哈哈哈哈哈‘)
return result
return newruixin
@kuozhan
def ruixin():
print('一定没有如果‘)
return '嘿嘿嘿嘿‘
ruixin()
---------------------------------------------------------------------------------------------------------------------------------------------
#带有参数的装饰器
def outer(arg):
def kuozhan(func):
def newruixin():
print('111111111')
func()
print('22222222')
def newfanbo():
print('aaaaaaaaaaa')
func()
print('bbbbbbbb')
if arg =='ruixin':
return newruixin
elif arg =='fanbo'
return newfanbo
return kuozhan
@outer('ruixin')
def ruixin():
print('111222')
@outer('fanbo')
print('asasasa')
fanbo()
ruixin()