日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【每天學點AI】一個例子帶你了解Python裝飾器到底在干嘛!

華清遠見工控 ? 2024-09-20 16:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天我們來聊聊一種能給你的代碼變得“加料”的神器——Python裝飾器

wKgaombtOEaAGfC5AAAT2kZ9brI20.jpeg

就像一杯咖啡,原本它是苦的,為了讓它符合我的口味,我給它添加了糖,添加之后就完美的符合了我的口味。

那么,裝飾器又是如何給代碼進行“加料”呢?

Python裝飾器提供了一個更為優(yōu)雅的方式來增強現(xiàn)有函數(shù)的行為,并且不需要修改現(xiàn)有的函數(shù)代碼及調用方式。

接下來通過一個案例來介紹一下裝飾器的原理和實際的行為。

這里有一個函數(shù),他就像一個勤勞的快遞員,每次運行都送一次快遞。

現(xiàn)在我們想知道它每次送快遞需要多長時間,這時候裝飾器就派上用場了,我們可以使用裝飾器來給它添加計時的功能。

wKgZombtOEaANYQJAAI8Tn6EY6E351.png

這是使用語法糖給函數(shù)添加裝飾器的用法。

下面的部分稱為原函數(shù),上面的部分稱裝飾器函數(shù),此時去調用原函數(shù)時,它除了會執(zhí)行原本的功能外,還會執(zhí)行裝飾器給它添加的計時的功能。

這是裝飾器最常見的寫法,但它是怎么給函數(shù)增加新功能的呢?我們來看去除掉語法糖后裝飾器的本來面目。

wKgaombtOEaAIlraAAH6JFu33BI380.png

如果不使用語法糖,它本質上就是裝飾器函數(shù)的一次調用,特殊的是它會將原函數(shù)作為參數(shù)傳遞給裝飾器函數(shù)。而在裝飾器函數(shù)中,它接收一個函數(shù)作為參數(shù),并且在它的內部定義了一個新的函數(shù),最后將新函數(shù)進行返回。在這里我們稱timer decorator為外函數(shù),稱wrapper為內函數(shù),而這個func就是原函數(shù)。

外函數(shù)將內函數(shù)名稱進行返回并賦值為原函數(shù)的函數(shù)名,下面在調用原函數(shù)的函數(shù)名時,實際上調用的是內函數(shù)。

wKgZombtOEaAffBSAAJ6ik9mlK4531.png

內函數(shù)被執(zhí)行后,首先會記錄當前時間,然后調用func,func是什么?是外函數(shù)的形參,這里可能有人會疑惑,外函數(shù)已經(jīng)執(zhí)行完了,為什么func還會存在呢?

這其實就是裝飾器函數(shù)的立身之本:內函數(shù)所使用的外函數(shù)數(shù)據(jù)不會隨著外函數(shù)的調用而銷毀,所以此時func就指向了原函數(shù),在調用內函數(shù)時,這里的func()可以去執(zhí)行原函數(shù),接著記錄一下時間,最后通過差值得到執(zhí)行函數(shù)所需要的時間。至此,通過裝飾器我們不僅為原函數(shù)添加了新的功能,并且還沒有修改其調用方式。

而語法糖的存在就是為了省略這一行代碼,由此就形成了我們常見的裝飾器了。

完整視頻鏈接:

https://www.bilibili.com/video/BV1fGHDepExY?t=1.2

wKgZombtOEaAXSlfAAKZ3-dCif803.jpeg


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AI
    AI
    +關注

    關注

    91

    文章

    41315

    瀏覽量

    302691
  • 人工智能
    +關注

    關注

    1821

    文章

    50366

    瀏覽量

    267051
  • python
    +關注

    關注

    58

    文章

    4889

    瀏覽量

    90327
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    0基礎看懂電阻:它到底在電路里做什么?

    不管是手機、充電器、家電,還是各種電路板,里面都藏著超基礎的電子元件——電阻。它看起來就是小小的貼片、不起眼的小圓柱,很多人都好奇:這個小東西,到底在電路里有什么用? 這篇文章完
    的頭像 發(fā)表于 04-27 14:32 ?93次閱讀
    0基礎看懂電阻:它<b class='flag-5'>到底在</b>電路里做什么?

    帶你了解雙目深度相機

    如今的智能化時代,不管是工業(yè)車間里的機器人、家里的掃地機器人,還是AR眼鏡、自動駕駛汽車,都需要雙能“看懂”三維世界的“眼睛”——雙目深度相機就是這樣款設備??赡苡腥藭?,這東西到底
    的頭像 發(fā)表于 04-14 14:30 ?242次閱讀
    <b class='flag-5'>一</b>文<b class='flag-5'>帶你</b><b class='flag-5'>了解</b>雙目深度相機

    FT 測試:芯片出貨前的最后道閘門

    問題的起點,而是問題的出口。、FT測試到底在干嘛?FT,全稱FinalTest句直白點的解釋:芯片完成封裝后,確認功能與關鍵參數(shù)是否滿
    的頭像 發(fā)表于 03-27 10:02 ?236次閱讀
    FT 測試:芯片出貨前的最后<b class='flag-5'>一</b>道閘門

    10個例子代碼,C語言結構體的高級

    ;, data.str); return 0; } 聯(lián)合體允許塊內存空間中存儲不同類型的數(shù)據(jù)。在這個例子中,我們定義了Da
    發(fā)表于 01-05 06:32

    Stack棧到底用來干嘛的呢?

    Stack_Size就是棧大小,0x00000400就是代表有1K(0x400/1024)的大小。 那這個棧到底用來干嘛的呢? 比如說我們函數(shù)的形參、以及函數(shù)里定義的局部變量就是存儲棧里,所以
    發(fā)表于 12-01 08:04

    模數(shù)轉換(ADC)到底在干嘛?

    模數(shù)轉換種用于將模擬信號(如光敏電阻或熱敏電阻的輸出)轉換為可由數(shù)字計算機或微控制處理的二進制信號的設備。將模擬信號轉換為二進制數(shù)字信號有多種方法,但在本教程中我們將討論逐次逼近法,因為這可
    的頭像 發(fā)表于 11-24 19:05 ?1482次閱讀
    模數(shù)轉換<b class='flag-5'>器</b>(ADC)<b class='flag-5'>到底在</b><b class='flag-5'>干嘛</b>?

    了解Mojo編程語言

    Mojo 是種由 Modular AI 公司開發(fā)的編程語言,旨在將 Python 的易用性與 C 語言的高性能相結合,特別適合人工智能(AI)、高性能計算(HPC)和系統(tǒng)級編程場景。
    發(fā)表于 11-07 05:59

    科技云報到:AI變革需要‘減脂增肌’

    產(chǎn)業(yè)的錨點到底在哪里?
    的頭像 發(fā)表于 09-25 09:20 ?551次閱讀
    科技云報到:<b class='flag-5'>AI</b>變革需要‘減脂增肌’

    智能體化AI和生成式AI的區(qū)別

    步驟,甚至沒有明確指令時主動行動。舉個例子:生成式 AI 可能會幫你生成“本周出差清單”,而智能體化
    的頭像 發(fā)表于 08-25 17:24 ?1937次閱讀

    充電樁為什么離不開電流傳感?篇文章帶你了解清楚!

    隨著新能源汽車越來越普及,充電樁的需求也快速增長。不管你是充電樁設備廠商,還是做運維的,或者是關注新能源行業(yè)的從業(yè)者,相信你定聽說過“小而關鍵”的器件——電流傳感
    的頭像 發(fā)表于 08-07 10:23 ?5260次閱讀
    充電樁為什么離不開電流傳感<b class='flag-5'>器</b>?<b class='flag-5'>一</b>篇文章<b class='flag-5'>帶你</b><b class='flag-5'>了解</b>清楚!

    帶你了解電源測試系統(tǒng)的功能!

    在當今電子與電力技術飛速發(fā)展的時代,各類電子設備、電力系統(tǒng)以及新能源相關產(chǎn)品的研發(fā)、生產(chǎn)和維護過程中,電源測試系統(tǒng)扮演著至關重要的角色。本文將帶你了解源儀電子的電源測試系統(tǒng)的功能。
    的頭像 發(fā)表于 07-02 09:10 ?1253次閱讀
    <b class='flag-5'>一</b>文<b class='flag-5'>帶你</b><b class='flag-5'>了解</b>電源測試系統(tǒng)的功能!

    目前Mirco Python sdk觸摸到底支持什么驅動啊 ?

    目前的Mirco Python sdk觸摸到底支持什么驅動啊 能不能有資料詳細說明 GT911 觸摸驅動是否支持啊
    發(fā)表于 06-24 07:02

    漫畫科普 | 功率放大器到底有哪些應用?帶你解鎖功放經(jīng)典應用場景?。?b class='flag-5'>一

    漫畫科普 | 功率放大器到底有哪些應用?帶你解鎖功放經(jīng)典應用場景?。?b class='flag-5'>一)
    的頭像 發(fā)表于 06-20 20:00 ?1134次閱讀
    漫畫科普 | 功率放大器<b class='flag-5'>到底</b>有哪些應用?<b class='flag-5'>帶你</b>解鎖功放經(jīng)典應用場景?。?b class='flag-5'>一</b>)

    如何使用 miniProg4 作為 USB-I2C 轉換?

    我想用 miniProg4 作為 USB-I2C 轉換。 但是我找不到個例子(最好是 Python 中)。 有人能引導我找到正確的資源
    發(fā)表于 05-28 07:56

    【「零基礎開發(fā)AI Agent」閱讀體驗】+讀《零基礎開發(fā)AI Agent》掌握扣子平臺開發(fā)智能體方法

    /, 在上面注冊賬號,并由快速開始進入開發(fā)操作空間,建立開發(fā)AI Agent的各開發(fā)要素進行定義,從而完成AI Agent的開發(fā)過程。 本書的多
    發(fā)表于 05-14 19:51
    济阳县| 克拉玛依市| 项城市| 军事| 辽阳市| 天峻县| 乐亭县| 额济纳旗| 南和县| 沙坪坝区| 康乐县| 德保县| 静宁县| 饶阳县| 英德市| 康平县| 平江县| 简阳市| 双柏县| 湟中县| 静海县| 吉水县| 北海市| 曲麻莱县| 浦东新区| 阳山县| 连州市| 广水市| 安溪县| 启东市| 齐齐哈尔市| 图木舒克市| 塘沽区| 景谷| 建宁县| 军事| 龙南县| 华池县| 金秀| 巴林左旗| 花垣县|