tft每日頭條

 > 科技

 > wislink交換機配置手冊

wislink交換機配置手冊

科技 更新时间:2024-06-16 10:08:12

大家好,我是楊數Tos,這是《從零基礎到大神》系列課程的第56篇文章,第三階段的課程:Python進階知識:Python進階知識:詳細講解Python中的函數(九)====> 函數的嵌套之裝飾器詳解(上篇)。

函數是非常重要的内容,在這裡,我會用10篇左右的文章詳細講解Python中函數定義與使用的規則。

閱讀提醒:建議小白先看一遍:【計算機基礎知識】和【Python基礎知識】課程,否則你不一定聽得懂!

wislink交換機配置手冊(第56p裝飾器閉包函數的應用)1

一、裝飾器介紹

1、什麼是裝飾器?

裝飾指的是為其他函數添加功能;裝飾器就是閉包函數,裝飾器就是閉包函數的一種運用方式。

wislink交換機配置手冊(第56p裝飾器閉包函數的應用)2

2、裝飾器的開放封閉原則:

開放:指的是對擴展功能是開放的,在原代碼不變動的基礎上,對其添加功能;

封閉:指的是對修改源代碼是封閉的;一段源代碼,如果它的功能沒有改的需求,就不要對原來的代碼做出任何的變動;最好寫一個新的函數,專門為其添加新功能,這就是裝飾器;

wislink交換機配置手冊(第56p裝飾器閉包函數的應用)3

3、裝飾器的作用

為了更好的用戶體驗(不停服更新),如果你要添加新功能,在不修改原來的代碼,不改變原來的調用方式,為當前功能添加新的方法或功能;

即:

裝飾器就是在不修改原代碼以及調用方式的情況下,為原代碼添加新功能的方式。

例如:程序設計者開發了一個功能,然後對該功能進行了更新;使用者不用等待停服更新,且更新了新的功能後,也不會變動原來的使用方式,卻添加了新的功能;這就是裝飾器的應用。

wislink交換機配置手冊(第56p裝飾器閉包函數的應用)4

二、無參裝飾器

1、一個簡單的無參裝飾器的模闆

【def inner(fun):

Def wrapper(*args,**kwargs):

Res = fun(*args,**kwargs)

Return res

Return wrapper 】

代碼效果如圖:

wislink交換機配置手冊(第56p裝飾器閉包函數的應用)5

2、裝飾器的運行過程解析

看這兩代碼:

① fun = inner(fun)

② fun(11,22)

這一行代碼:fun = inner(fun),表示:

1.将inner這個函數的返回值,賦值給新的變量fun;(變量的賦值與引用知識點)

2.而inner這個函數中傳入的參數fun,表示的是将前面的函數fun當作參數傳入進去;(函數對象相關知識點)

3.所以,fun = inner(fun)這行代碼,就相當于fun = inner的返回值;fun = inner(fun)這行代碼最後的結果應該是,wrapper這個函數名的内存地址;即:fun = wrapper 。

4.而fun(11,22)這一行代碼,表示執行wrapper這個函數,而wrapper這個函數的返回值是res,而res這個返回值等于:Res = fun(*args,**kwargs);

5.而fun(*args,**kwargs)表示的是fun(x,y),實例化結果為:fun(11,22),在fun這個函數中執行的是打印x和y的值的操作;

所以最終的結果明白了嗎?

wislink交換機配置手冊(第56p裝飾器閉包函數的應用)6

這個裝飾器的執行就相當于下面的代碼:

【print("調用裝飾器了");

調用fun函數,并将11和22分别傳給形參x和y,并打印x和y的值。】

wislink交換機配置手冊(第56p裝飾器閉包函數的應用)7

看到這裡,前面的代碼隻是添加一點功能,卻寫了這麼多行的代碼,不是多餘嗎?其實,在真實的應用場景,我們需要添加的功能肯定會很複雜,往往是不止一個地方要添加一個相同的新功能;裝飾器就相當于一個新功能的模闆,哪裡需要使用它,隻需調用就可以了;完全不用管裝飾器内部是如何實現的;這也是一種面向對象的思維方式。

wislink交換機配置手冊(第56p裝飾器閉包函數的應用)8

以上是本期内容,如果有表達不對的内容,歡迎您的留言、斧正,我們一起天天向上。

感謝您的閱讀,您的三連【關注、點贊、收藏】就是對我最大的支持,謝謝!

本文由楊數Tos原創,歡迎關注,帶你一起長知識。

,

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

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

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