中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

嘉义县| 拉萨市| 伊川县| 二连浩特市| 通江县| 龙门县| 宜兴市| 高淳县| 会宁县| 灵山县| 侯马市| 嘉祥县| 六盘水市| 额尔古纳市| 高要市| 马关县| 长岛县| 青海省| 株洲县| 博客| 贵州省| 张北县| 兴化市| 双鸭山市| 长兴县| 淳安县| 左权县| 拜泉县| 高清| 二连浩特市| 潼南县| 万山特区| 措美县| 无锡市| 连云港市| 乐清市| 台北县| 溆浦县| 肃南| 石阡县| 滨海县|