亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python的閉包和裝飾器你真的了解嗎

 更新時(shí)間:2022年02月14日 08:58:09   作者:尤諾.  
這篇文章主要為大家詳細(xì)介紹了Python的閉包和裝飾器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

閉包

閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。

def test1(k, b):
    def test1_1(x):
        print(k*x+b)
    return test1_1
t1 = test1(1, 2)
t1(0)
t1(1)
t1(2)

閉包中修改數(shù)據(jù)

x = 300
def test1():
    x = 200
    def test2():
        nonlocal x
        print("----1----x = {}".format(x))
        x = 100
        print("----2----x = {}".format(x))
    return test2
t1 = test1()
t1()

裝飾器

實(shí)現(xiàn)對無參數(shù)函數(shù)的裝飾器

def set_func(func):
    def call_func():
        print("裝飾器執(zhí)行")
        func()
    return call_func
@set_func   # 等價(jià)于sumNum = set_func(sumNum)
def sumNum():
    print("sumNum")
sumNum()

實(shí)現(xiàn)對有參數(shù)函數(shù)的裝飾器

# 對有參數(shù)、無返回值的函數(shù)進(jìn)行裝飾
def set_func(func):
    def call_func(num):
        print("裝飾器")
        func(num)
    return call_func
@set_func
def sumNum(num):
    print("sumNum = {}".format(num))
sumNum(100)

對不定長參數(shù)的函數(shù)進(jìn)行裝飾

def set_func(func):
    def call_func(*args, **kwargs):
        print("裝飾器")
        func(*args, **kwargs)  # 拆包
    return call_func
@set_func
def sumNum(num, *args, **kwargs):
    print("sumNum = {}".format(num))
    print("args = {}".format(args))
    print("kwargs = {}".format(kwargs))
sumNum(100, 200, c=100)

對有返回值的函數(shù)進(jìn)行裝飾

def set_func(func):
    def call_func(*args, **kwargs):
        print("裝飾器")
        return func(*args, **kwargs)  # 拆包
    return call_func
@set_func
def sumNum(num, *args, **kwargs):
    print("sumNum = {}".format(num))
    print("args = {}".format(args))
    print("kwargs = {}".format(kwargs))
    return "200 ok"
sumNum(100, 200, c=100)

多個(gè)裝飾器對同一個(gè)函數(shù)裝飾

def add_h1(func):
    def h1():
        h1_str = "<h1>" + func() + "</h1>"
        return h1_str
    return h1

def add_a(func):
    def call_func():
    	a_str = "<a>" + func() + "</a>"
        return a_str
    return call_func

@add_h1
@add_a
def get_str():
    return "haha"
get_str()

輸出為:<h1><a>haha</a></h1>

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!   

相關(guān)文章

  • python使用PIL把透明背景圖片轉(zhuǎn)成白色背景的示例代碼

    python使用PIL把透明背景圖片轉(zhuǎn)成白色背景的示例代碼

    當(dāng)我們在采集一些圖片的時(shí)候,這些圖片的背景經(jīng)常是透明的,但是如何把透明背景轉(zhuǎn)成白色背景呢,接下來就給大家解決這個(gè)問題,本文主要介紹了python使用PIL把透明背景圖片轉(zhuǎn)成白色背景,需要的朋友可以參考下
    2023-08-08
  • 如何寫python的配置文件

    如何寫python的配置文件

    在本篇文章里小編給大家分享了關(guān)于python寫配置文件方法,對此有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-06-06
  • django商品分類及商品數(shù)據(jù)建模實(shí)例詳解

    django商品分類及商品數(shù)據(jù)建模實(shí)例詳解

    這篇文章主要介紹了django商品分類及商品數(shù)據(jù)建模實(shí)例代碼內(nèi)容,需要的朋友們學(xué)習(xí)參考下。
    2020-01-01
  • Python數(shù)據(jù)分析matplotlib折線圖案例處理

    Python數(shù)據(jù)分析matplotlib折線圖案例處理

    這篇文章主要介紹了Python數(shù)據(jù)分析matplotlib折線圖案例處理,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • Pandas數(shù)據(jù)分析固定時(shí)間點(diǎn)和時(shí)間差

    Pandas數(shù)據(jù)分析固定時(shí)間點(diǎn)和時(shí)間差

    這篇文章主要介紹了Pandas數(shù)據(jù)分析固定時(shí)間點(diǎn)和時(shí)間差,文章未日澳主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • python中創(chuàng)建和修改yaml文件的方法

    python中創(chuàng)建和修改yaml文件的方法

    YAML 是 "YAML Ain’t a Markup Language"的遞歸縮寫,yaml簡潔美觀,是一種常用的標(biāo)記語言,可以用來表達(dá)多種數(shù)據(jù)結(jié)構(gòu)和配置文件,本文給大家介紹python中如何創(chuàng)建和修改yaml文件,感興趣的朋友一起看看吧
    2023-11-11
  • Django基礎(chǔ)知識與基本應(yīng)用入門教程

    Django基礎(chǔ)知識與基本應(yīng)用入門教程

    這篇文章主要介紹了Django基礎(chǔ)知識與基本應(yīng)用,結(jié)合實(shí)例形式分析了Django框架基本的項(xiàng)目創(chuàng)建、啟動(dòng)、查看版本等操作,并結(jié)合一個(gè)簡單的blog應(yīng)用示例分析了Django的基本使用方法,需要的朋友可以參考下
    2018-07-07
  • python中字符串的常見操作總結(jié)(一)

    python中字符串的常見操作總結(jié)(一)

    這篇文章主要介紹了python中字符串的常見操作總結(jié),文章通過簡單介紹對象的相關(guān)展開全文詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2022-07-07
  • 在Django的session中使用User對象的方法

    在Django的session中使用User對象的方法

    這篇文章主要介紹了在Django的session中使用User對象的方法,Django是眾Python web開發(fā)框架中人氣最高的一個(gè),需要的朋友可以參考下
    2015-07-07
  • python selenium 查找隱藏元素 自動(dòng)播放視頻功能

    python selenium 查找隱藏元素 自動(dòng)播放視頻功能

    這篇文章主要介紹了python selenium 查找隱藏元素 自動(dòng)播放視頻功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評論