91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何解決被修飾函數消失的問題

發布時間:2021-08-05 10:53:43 來源:億速云 閱讀:120 作者:小新 欄目:開發技術

這篇文章主要介紹python如何解決被修飾函數消失的問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

當使用@修飾符修飾函數時,會存在這樣一個問題:被修飾的函數會消失(這是因為修飾函數沒有設置返回值,如果設置了返回值,則就把返回值賦給被修飾函數,比如,test1函數的返回值設置為 return 6, 那么就把6賦值給test2,test2就不再是一個函數,而是一個int類型的變量,值就是6):

def test1(A):
  print("I am test1111111111")
@test1
def test2():
  print("I am test2222222222")
test2
print(type(test2))

輸出如下:

    I am test1111111111
    <class 'NoneType'>

Nonetype和空值是不一致的,可以理解為Nonetype為不存在這個參數,空值表示參數存在,但是值為空

為了避免這個問題,可以使用wraps函數,它的作用是保證被修飾函數名不被改變

from functools import wraps

def test1(A):
  @wraps(A)
  def test3():
    print("I am test3333333")
  print("I am test1111111111")
  return test3


@test1
def test2():
  print("I am test2222222222")


test2
print(test2.__name__)
test2()

輸出如下:

I am test1111111111
test2
I am test3333333

可以看到,test2函數的函數名沒被改變,但函數功能卻改變了,18行運行test2函數時,輸出的是 I am test3333333

以上是“python如何解決被修飾函數消失的問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沙洋县| 蚌埠市| 出国| 铜山县| 徐汇区| 永春县| 澄城县| 钦州市| 西城区| 恩施市| 通道| 普洱| 平阳县| 禄丰县| 荣昌县| 东山县| 重庆市| 临泉县| 会昌县| 桓台县| 于都县| 许昌县| 商水县| 嘉善县| 高碑店市| 忻州市| 明星| 自贡市| 乌兰察布市| 出国| 望城县| 余江县| 太仆寺旗| 普兰店市| 阜新| 许昌市| 财经| 广水市| 黔江区| 金平| 芮城县|