dataclass 到 Python 中的 JSON JavaScript Object Notation或JSON表示使用編程語言中的文本組成的腳本(可執行)文件來存儲和傳輸數據。 Python通過JSON內置模塊支持JSON。因此,我們在Python腳本中導入JSON包,以利用這一能力。 JSO ...
@ 符號在 Python 中最常見的使用情況是在裝飾器中。一個裝飾器可以讓你改變一個函數或類的行為。
@ 符號也可以作為一個數學運算符使用,因為它可以在Python中乘以矩陣。本教程將教你如何使用 Python 的@ 符號。
裝飾器中使用@ 符號
裝飾器是一個接受一個函數作為參數的函數,向其添加一些功能,並返回修改後的函數。
例如,請看下麵的代碼。
def decorator(func):
return func
@decorator
def some_func():
pass
這等同於下麵的代碼。
def decorator(func):
return func
def some_func():
pass
some_func = decorator(some_func)
裝飾器修改了原始函數,而沒有改變原始函數中的任何腳本。
讓我們看看上述代碼片斷的一個實際例子。
def message(func):
def wrapper():
print("Hello Decorator")
func()
return wrapper
def myfunc():
print("Hello World")
@ 符號與裝飾器函數的名稱一起使用。它應該寫在將被裝飾的函數的頂部。
@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 。
使用@ 符號進行矩陣相乘
從Python 3.5開始,@ 符號也可以作為一個操作符在Python中執行矩陣乘法。
下麵的例子是一個在Python中進行矩陣相乘的簡單實現。
class Mat(list):
def __matmul__(self, B):
A = self #Python小白學習交流群:153708845
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 中的@ 符號被用於裝飾器和矩陣乘法。
現在你應該明白@ 符號在 Python 中的作用。我們希望你覺得這個教程對你有幫助。