欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 裝飾器帶參數(shù)和不帶參數(shù)步驟詳解

 更新時間:2024年05月30日 10:16:34   作者:Yorlen_Zhang  
裝飾器是Python語言中一種特殊的語法,用于在不修改原函數(shù)代碼的情況下,為函數(shù)添加額外的功能或修改函數(shù)的行為,這篇文章主要介紹了python裝飾器帶參數(shù)和不帶參數(shù)的相關(guān)知識,需要的朋友可以參考下

裝飾器是Python語言中一種特殊的語法,用于在不修改原函數(shù)代碼的情況下,為函數(shù)添加額外的功能或修改函數(shù)的行為。通過裝飾器,我們可以在函數(shù)執(zhí)行前后執(zhí)行一些額外的代碼,或者修改函數(shù)的參數(shù)。

要使用裝飾器引入函數(shù)和參數(shù),可以按照以下步驟進(jìn)行:

  • 定義裝飾器函數(shù):裝飾器函數(shù)是一個普通的Python函數(shù),它接受一個函數(shù)作為參數(shù),并返回一個新的函數(shù)。裝飾器函數(shù)通常使用@符號放在被裝飾函數(shù)的定義之前,表示該函數(shù)將被裝飾。
  • 在裝飾器函數(shù)內(nèi)部定義新的函數(shù):在裝飾器函數(shù)內(nèi)部,可以定義一個新的函數(shù),用于包裹原函數(shù),并在包裹函數(shù)中添加額外的功能。
  • 在包裹函數(shù)中調(diào)用原函數(shù):在包裹函數(shù)中,可以調(diào)用原函數(shù),并傳遞原函數(shù)的參數(shù)。
  • 返回包裹函數(shù):在包裹函數(shù)的最后,需要返回包裹函數(shù)本身。

全局定義參數(shù)傳參

def decorator_function(names):
    def inner_wrapper(func):
        def wrapper():
            result = func()
            return result + f"""my class student's name is {"、".join(names)};"""
        return wrapper
    return inner_wrapper
names = ["Mike", "David", "Jhon"]
@decorator_function(names)
def generate_code():
    return f" I'm a teacher! "
result_str = generate_code()
print(result_str)

不帶參數(shù),這里的names為全局參數(shù)

def subnormal_saturation_decorator(func):
    def wrapper(*args, **kwargs):
        result = func(*args, **kwargs)
        return result + f"""my class student's name is {"、".join(names)};"""
    return wrapper
names = ["Mike", "David", "Jhon"]
@subnormal_saturation_decorator
def generate_code():
    return f" I'm a teacher!"
result_str = generate_code()
print(result_str)

通過方法傳參

def subnormal_saturation_decorator(func):
    def wrapper(names,*args, **kwargs):
        result = func(names,*args, **kwargs)
        return result + f"""my class student's name is {"、".join(names)};"""
    return wrapper
@subnormal_saturation_decorator
def generate_code(names):
    print(names)
    return f" I'm a teacher!"
result_str = generate_code(["Mike", "David", "Jhon"])
print(result_str)

調(diào)用使用裝飾器的方法,帶傳參 

# 裝飾器
def subnormal_saturation_decorator(func):
    def wrapper(names,*args, **kwargs):
        result = func(names,*args, **kwargs)
        return result + f"""my class student's name is {"、".join(names)};"""
    return wrapper
# 使用裝飾器的方法
@subnormal_saturation_decorator
def generate_code(names):
    print(names)
    return f" I'm a teacher!"
# 調(diào)用使用裝飾器方法的方法
def supper_func():
    names = ["Mike", "David", "Jhon"]
    return generate_code(names)
result_str = supper_func()
print(result_str)

到此這篇關(guān)于python 裝飾器 帶參數(shù)和不帶參數(shù)的文章就介紹到這了,更多相關(guān)python 裝飾器 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python入門教程(十五)Python的字典

    Python入門教程(十五)Python的字典

    這篇文章主要介紹了Python入門教程(十五)Python的字典,Python是一門非常強大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • python3中bytes和string之間的互相轉(zhuǎn)換

    python3中bytes和string之間的互相轉(zhuǎn)換

    這篇文章主要介紹了python3中bytes和string之間的互相轉(zhuǎn)換,文中給出了詳細(xì)的介紹和示例代碼,相信對大家具有一定的參考價值,有需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-02-02
  • 使用python實現(xiàn)一個簡單ping?pong服務(wù)器

    使用python實現(xiàn)一個簡單ping?pong服務(wù)器

    這篇文章主要為大家介紹了使用python實現(xiàn)一個簡單ping?pong服務(wù)器,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • pandas factorize實現(xiàn)將字符串特征轉(zhuǎn)化為數(shù)字特征

    pandas factorize實現(xiàn)將字符串特征轉(zhuǎn)化為數(shù)字特征

    今天小編就為大家分享一篇pandas factorize實現(xiàn)將字符串特征轉(zhuǎn)化為數(shù)字特征,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python?httpstat命令行工具功能使用探索

    Python?httpstat命令行工具功能使用探索

    Python?httpstat是一個強大的命令行工具,用于深入了解HTTP請求的性能和狀態(tài)信息,本文將介紹Python?httpstat的基本用法、功能特性、示例代碼以及實際應(yīng)用場景,幫助大家更好地理解和利用這個有用的工具
    2024-01-01
  • Python學(xué)習(xí)之路之pycharm的第一個項目搭建過程

    Python學(xué)習(xí)之路之pycharm的第一個項目搭建過程

    這篇文章主要介紹了Python學(xué)習(xí)之路之pycharm的第一個項目搭建過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • python修改包導(dǎo)入時搜索路徑的方法

    python修改包導(dǎo)入時搜索路徑的方法

    搜索路徑是由一系列目錄名組成的,Python解釋器就依次從這些目錄中去尋找所引入的模塊,下面這篇文章主要給大家介紹了關(guān)于python修改包導(dǎo)入時搜索路徑的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Pandas多個條件(AND,OR,NOT)中提取行

    Pandas多個條件(AND,OR,NOT)中提取行

    本文主要介紹了Pandas多個條件(AND,OR,NOT)中提取行,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 使用 NumPy 和 Matplotlib 繪制函數(shù)圖

    使用 NumPy 和 Matplotlib 繪制函數(shù)圖

    Matplotlib 是 Python 的繪圖庫。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開源替代方案。 它也可以和圖形工具包一起使用,如 PyQt 和 wxPython
    2021-09-09
  • Python模擬登錄requests.Session應(yīng)用詳解

    Python模擬登錄requests.Session應(yīng)用詳解

    這篇文章主要介紹了Python模擬登錄requests.Session應(yīng)用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評論