python装饰器常见问题_关于python装饰器的问题
生活随笔
收集整理的這篇文章主要介紹了
python装饰器常见问题_关于python装饰器的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
展開全部
裝飾器函du數參數要傳函數,zhi而不是字符串。
裝飾dao器函數內特點:
1,參數為函數對象
2,使用內部函容數
3,返回函數對象
在你的代碼中:
裝飾器函數是arg_func(sex)
內部函數是func1()
被裝飾函數是man()和woman()
所以代碼要改成:
def?arg_func(sex):
def?func1():
sex()
if(sex.__name__=='man'):
print("you?can?'t")
if(sex.__name__=='woman'):
print("you?can")
return?func1
@arg_func
def?man():
print('good?good?study')
@arg_func
def?woman():
print('good?good?study')
man()
woman()
PS:裝飾器就是為了簡化代碼,增加可讀性,方便團隊開發,在不修改原函數代碼的前提下,通過封裝修改功能,而@修飾就是為了通過原函數名調用時,不直接執行原函數,而是把原函數傳遞到裝飾器函數,通過內部函數(閉包)來調用原函數。這樣好處,就是統一調用方式。
總結
以上是生活随笔為你收集整理的python装饰器常见问题_关于python装饰器的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎样快速识别 英文地址中包含非英文字符_
- 下一篇: python复制多个文件_python