tft每日頭條

 > 生活

 > python裝飾器使用場景

python裝飾器使用場景

生活 更新时间:2024-08-14 18:51:21

很多同學都看到python代碼中函數上有神奇的裝飾器,那麼什麼是裝飾器,他又能解決什麼問題呢?

實際上裝飾器的本質很多同學都已經學過了,那就是閉包。

閉包

python裝飾器使用場景(python裝飾器一篇看懂)1

閉包簡單來說,就是閉包就是能夠讀取其他函數内部變量的函數(外部函數中嵌套一個内部函數,并引用了外部函數的變量)。可以将閉包的特性總結為三點:

(1)可以外部訪問函數内部變量

(2)内部函數可以訪問外層函數變量

(3)局部變量可以常駐内存

如上圖案例中,在函數A中嵌套一個函數B,并且引用了函數A的變量x,這就是一個簡單的閉包。

執行函數時也是按順序執行,a=A(10)參數10傳給A并将B的引用賦值給a,a(5)執行B(5)

需要注意的是返回函數B時不能加括号。

裝飾器

裝飾器的本質就是一個閉包,而且是更加簡單方便的閉包使用方式,可以在不改變原有的函數結構上添加功能。

那麼裝飾器到底怎麼使用呢?

咱們啊從實際使用角度出發,一切的概念和語法都是為了解決問題才出現的,比如甲方現在的需求就是要電子秤顯示體重。

python裝飾器使用場景(python裝飾器一篇看懂)2

咱就不細寫,簡化一下,上面n就是體重,直接返回體重的數值就OK了。

突然啊,就很突然,這個時候甲方需求變了,不行,要加上一個去衣服重量,美少女怎麼可能160斤呢,一定是衣服太重。

但是去皮功能,這樣就要重新再原有的函數中跟改破壞原有的結構(雖然這個結構就一句話,但是不行,不能改),此時此刻就到了我們的主角裝飾器的登場。

python裝飾器使用場景(python裝飾器一篇看懂)3

相當的簡單。

當然了裝飾器不止是函數,類也可以,我們看看使用類的效果吧。

當然這本質上和函數閉包沒有區别,依靠類方法的call來實現的直接調用。

python裝飾器使用場景(python裝飾器一篇看懂)4

上面就是我自己在學習中對于python裝飾器的一些淺薄的理解和運用拉,不過還是非常方便的使用起來也讓代碼簡潔不少。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved