日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python进阶:闭包、map/reduce/filter函数、lambda函数、装饰器

發(fā)布時(shí)間:2025/10/17 python 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python进阶:闭包、map/reduce/filter函数、lambda函数、装饰器 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

函數(shù)式編程


一、閉包

  • python一切皆對(duì)象
  • 一切皆對(duì)象意味著,所有類型均可被賦值,傳參~;函數(shù)可以當(dāng)做參數(shù)傳遞,也可以被當(dāng)做返回值返回;在其他一些語(yǔ)言中函數(shù)僅是一段代碼塊。

  • 閉包的定義與用法
  • 如何驗(yàn)證是閉包?

  • 閉包的應(yīng)用場(chǎng)景
    實(shí)現(xiàn)計(jì)步功能
  • 使用閉包的環(huán)境變量而不借助全局變量,實(shí)現(xiàn)了良好的封裝性!!!


    二、匿名函數(shù)/表達(dá)式

  • 匿名表達(dá)式的定義
  • expression中經(jīng)常用到三元表達(dá)式,可以做判斷

    一般語(yǔ)言中三元表達(dá)式: x > y ? x : y

    python中格式: x if x > y else y

    注意:lamba表達(dá)式經(jīng)常結(jié)合map、reduce、filter等函數(shù)使用

    三、map函數(shù):映射

    • 多變量下的map

    四、reduce函數(shù):歸約

  • 定義
  • 標(biāo)注中多了個(gè)x…

    四、filter函數(shù)

    filter返回的filter對(duì)象也需要借助內(nèi)置函數(shù)或者繼承來(lái)的函數(shù)list等來(lái)取值!!


    五、裝飾器

  • 用到的兩個(gè)思想

    • 對(duì)于函數(shù)定義的復(fù)雜是可以接受的,但不能忍受函數(shù)調(diào)用的復(fù)雜
    • 函數(shù)對(duì)于修改應(yīng)該是封閉的,對(duì)于擴(kuò)展應(yīng)是開(kāi)放的
  • 裝飾器的定義

    裝飾器demo

  • 上述裝飾器僅是個(gè)demo,并不能在多種函數(shù)類型的情況下實(shí)現(xiàn)復(fù)用!因?yàn)閣rapper中參數(shù)限定死了:只有一個(gè)位置參數(shù)

    注意:wrapper中參數(shù)名字可以不同于被包裝函數(shù)的參數(shù)名字,wrapper參數(shù)泛指一個(gè)位置形參!!

    從上圖可知:裝飾器的幾大優(yōu)勢(shì):
    + 未改變已創(chuàng)建函數(shù)的定義
    + 未改變已創(chuàng)建函數(shù)的調(diào)用方式
    + 為已創(chuàng)建函數(shù)添加了新的模塊!!

  • 裝飾器裝飾后返回的函數(shù)是個(gè)閉包(沒(méi)什么實(shí)際作用,只是為了加深閉包的理解)
  • 真正具有實(shí)際使用價(jià)值的裝飾器(必須能夠裝飾多種類型的函數(shù))
  • 面對(duì)多種類型函數(shù)情況下,裝飾器要有普適性才有意義:

    可以記憶裝飾器內(nèi)參數(shù)的形參:可變位置參數(shù)+可變關(guān)鍵字參數(shù)=泛指所有類型的參數(shù)

    總結(jié)

    以上是生活随笔為你收集整理的python进阶:闭包、map/reduce/filter函数、lambda函数、装饰器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。