装饰器的基本实现:函数
def kuozhan(func):ui
def newruixin():扩展
#扩展功能:
print('若是我说若是‘)装饰器
#调用基本函数new
funcreturn
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()