Python中@符號的用法小結(jié)
@ 符號在 Python 中最常見的使用情況是在裝飾器中。一個裝飾器可以讓你改變一個函數(shù)或類的行為。
@ 符號也可以作為一個數(shù)學(xué)運(yùn)算符使用,因?yàn)樗梢栽赑ython中乘以矩陣。本教程將教你如何使用 Python 的@ 符號。
裝飾器中使用@ 符號
裝飾器是一個接受一個函數(shù)作為參數(shù)的函數(shù),向其添加一些功能,并返回修改后的函數(shù)。
例如,請看下面的代碼。
def decorator(func): return func @decorator def some_func(): pass
這等同于下面的代碼。
def decorator(func): return func def some_func(): pass some_func = decorator(some_func)
裝飾器修改了原始函數(shù),而沒有改變原始函數(shù)中的任何腳本。
讓我們看看上述代碼片斷的一個實(shí)際例子。
def message(func): def wrapper(): print("Hello Decorator") func() return wrapper def myfunc(): print("Hello World")
@ 符號與裝飾器函數(shù)的名稱一起使用。它應(yīng)該寫在將被裝飾的函數(shù)的頂部。
@message def myfunc(): print("Hello World") myfunc()
輸出:
Hello Decorator
Hello World
上面的裝飾器例子與這段代碼做了同樣的工作。
def myfunc(): print("Hello World") myfunc = message(myfunc) myfunc()
輸出:
Hello Decorator
Hello World
Python中一些常用的裝飾器是:@property ,@classmethod ,和@staticmethod 。
使用@ 符號進(jìn)行矩陣相乘
從Python 3.5開始,@ 符號也可以作為一個操作符在Python中執(zhí)行矩陣乘法。
下面的例子是一個在Python中進(jìn)行矩陣相乘的簡單實(shí)現(xiàn)。
class Mat(list): def __matmul__(self, B): A = self return Mat([[sum(A[i][k]*B[k][j] for k in range(len(B))) for j in range(len(B[0])) ] for i in range(len(A))]) A = Mat([[2,5],[6,4]]) B = Mat([[5,2],[3,5]]) print(A @ B)
輸出:
[[25, 29], [42, 32]]
就這樣了。Python 中的@ 符號被用于裝飾器和矩陣乘法。
現(xiàn)在你應(yīng)該明白@ 符號在 Python 中的作用。我們希望你覺得這個教程對你有幫助。
到此這篇關(guān)于Python中@符號的用法小結(jié)的文章就介紹到這了,更多相關(guān)Python @符號內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)Excel自動分組合并單元格
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)Excel自動分組合并單元格,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02python?apscheduler?cron定時(shí)任務(wù)觸發(fā)接口自動化巡檢過程
這篇文章主要介紹了python?apscheduler?cron定時(shí)任務(wù)觸發(fā)接口自動化巡檢過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03Python設(shè)計(jì)模式之職責(zé)鏈模式原理與用法實(shí)例分析
這篇文章主要介紹了Python設(shè)計(jì)模式之職責(zé)鏈模式,結(jié)合具體實(shí)例形式分析了Python責(zé)任鏈模式的概念、原理、定義與使用方法,需要的朋友可以參考下2019-01-01python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中雙向循環(huán)鏈表操作的示例
這篇文章主要介紹了python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中雙向循環(huán)鏈表操作的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Scrapy基于selenium結(jié)合爬取淘寶的實(shí)例講解
今天小編就為大家分享一篇Scrapy基于selenium結(jié)合爬取淘寶的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06NDArray 與 numpy.ndarray 互相轉(zhuǎn)換方式
這篇文章主要介紹了NDArray 與 numpy.ndarray 互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05