python中的類怎樣理解,python裝飾器理解_Python裝飾器理解(新手)

 2023-12-06 阅读 34 评论 0

摘要:本文介紹Python其中一個功能--裝飾器python中的類怎樣理解?只做簡單介紹, 可以幫助新手理解裝飾器, 沒有完整的裝飾器代碼裝飾器本質上就是一個函數,在不修改源代碼,調用方法的前提下,用來給其他函數添加功能的函數python和c++學哪個好,知識要求? ?&#x

本文介紹Python其中一個功能--裝飾器

python中的類怎樣理解?只做簡單介紹, 可以幫助新手理解裝飾器, 沒有完整的裝飾器代碼

裝飾器本質上就是一個函數,在不修改源代碼,調用方法的前提下,用來給其他函數添加功能的函數

python和c++學哪個好,知識要求? ?:? 高階函數,內嵌函數

一個堪稱最簡單的函數:

deftest1():print('-----hello Jeden -----')

現在在不修改函數源代碼,不修改調用方法前提下,增加打印一個語句hello world,怎么加?

我們需要再次定義一個函數:而這個函數,就是一個最簡單的裝飾器:

1 defwarpper(func):2 definner():3 print('hello world')4 func()

5 return inner

warpper函數內嵌inner函數,最后返回inner函數,可是,這個函數怎么用呢?

你肯定已經看出來warpper函數參數是一個函數,在inner函數內部進行調用

所以,我們可以這樣用:

warpper(test1)

但是這樣肯定不行的,返回值是一個函數的引用,所以需要用一個變量名來存儲,然后加上小括號調用

func = warpper(test1)

func()

# -------------output( hello world \n hello Jeden )

這就完成了函數的裝飾, 但是調用方法改變了,原來的test1改成了func(),所以做以下修改:

func() = warpper #改成 test1 = warpper(test1)

func() # 改成test1()

已經完成了99%了,最后用python提供的語法糖就行了

類似于這樣? --? @function_name

#第一過程最終代碼展示

defwarpper(func):definner():print('hello world')

func()returninner

@warpperdeftest():print('hello jeden')

test()

這就是最簡單的裝飾器案例。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/188024.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息