亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

蚌埠市| 张掖市| 德阳市| 平南县| 禄劝| 兴化市| 武汉市| 酉阳| 廊坊市| 扬州市| 永嘉县| 福建省| 南开区| 永登县| 府谷县| 厦门市| 钟祥市| 会宁县| 定南县| 策勒县| 安福县| 烟台市| 德庆县| 安西县| 航空| 侯马市| 阿城市| 穆棱市| 迁安市| 缙云县| 乌兰浩特市| 莱西市| 双鸭山市| 微博| 宜宾县| 兖州市| 松滋市| 右玉县| 内丘县| 巴东县| 睢宁县|