国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python裝飾器如何實現修復過程解析

Python裝飾器如何實現修復過程解析

2020-09-06 00:01Python探索牛 Python

這篇文章主要介紹了Python裝飾器如何實現修復過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

Python裝飾器(decorator)在實現的時候,被裝飾后的函數其實已經是另外一個函數了(函數名等函數屬性會發生改變),

為了不影響,Python的functools包中提供了一個叫wraps的decorator來消除這樣的副作用。寫一個decorator的時候,最好在實現之前加上functools的wrap,

它能保留原有函數的名稱和docstring。

未加@wraps的時候:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from functools import wraps
 
 
def wrapper(func):
  # @wraps(func)
  def inner(*args, **kwargs):
    print("裝飾器工作中...")
    func(*args, **kwargs)
  return inner
@wrapper
def f1(arg):
  """
  這是一個測試裝飾器修復技術的函數
  :param arg: 隨便傳
  :return: 沒有
  """
  print(arg)
 
f1('呵呵')
print(f1.__name__,f1.__doc__)

打印結果是:

Python裝飾器如何實現修復過程解析

但是加上@wraps以后:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from functools import wraps
 
 
def wrapper(func):
  @wraps(func)
  def inner(*args, **kwargs):
    print("裝飾器工作中...")
    func(*args, **kwargs)
  return inner
@wrapper
def f1(arg):
  """
  這是一個測試裝飾器修復技術的函數
  :param arg: 隨便傳
  :return: 沒有
  """
  print(arg)
 
f1('呵呵')
print(f1.__name__,f1.__doc__)

打印結果是:

Python裝飾器如何實現修復過程解析

其中主要的就是兩個變量:

1、顯示 正在執行的函數的名稱 f.name

2、顯示 正在執行的函數的注釋 f.doc

簡單來說就是:

如果沒使用@wraps,當A調用了裝飾器B的話,即使A.name,返回的會是裝飾器B的函數名稱,而不是A的函數名稱

如果使用了@wraps,當A調用了裝飾器B的話,A.__ name__返回的會是A函數的名稱,而不是飾器B的名稱,

這也即使常說的@wraps是裝飾器的修復技術,

實際就是修復還原了A的__ name__變量,同理__ doc__變量也是一樣。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/djdjdj123/p/12181230.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久久久久久三级 | 国产精品一区二区不卡 | 国产精品久久久久久久久久久久 | 亚洲精品乱码久久久久久金桔影视 | 欧美乱大交xxxxx春色视频 | 亚洲精品久久久久久国产 | 国产精品亚洲一区二区三区 | 欧美日韩一区在线 | 在线中文视频 | 亚洲欧美视频一区 | 在线成年人电影 | 亚洲人成在线播放 | 国产欧美中文字幕 | 免费看一区二区三区 | 国产激情在线看 | 亚洲精品乱码久久久久久按摩观 | 毛片网站免费在线观看 | 日本久久网 | 亚洲一级在线 | 国产第一区二区三区 | 狠狠草视频 | 欧美一级片在线观看 | 欧美成人a | 久久伊人精品网 | 亚洲第一视频 | 久久亚洲欧美日韩精品专区 | 激情五月婷 | 国产在线看片 | 久久久久高清 | 国产片在线播放 | 久久中国 | 日韩在线一区二区三区 | 视频一区中文字幕 | 欧美视频区 | 精品久久久久久亚洲综合网 | 欧美日韩综合在线 | 成人黄大片视频在线观看 | 日韩三区视频 | 成人高h视频 | 最新天堂中文在线 | 日韩在线精品强乱中文字幕 |