Python 3において、@
(アット)記号は主に2つの用途で使用されます。
1. デコレータ
最も一般的な用途は、デコレータとしての使用です。デコレータは、関数やメソッド、クラスに追加の機能を付与するための構文です。@デコレータ名
の形式で関数やメソッドの前に書きます。
例:
def my_decorator(func):
def wrapper():
print("デコレータが実行されました。")
return func()
return wrapper
@my_decorator
def say_hello():
print("こんにちは!")
say_hello()
この場合、say_hello()
を呼び出すと、最初にデコレータが呼ばれ、次に元の関数が実行されます。出力は次のようになります。
デコレータが実行されました。
こんにちは!
2. 行列乗算(Python 3.5以降)
Python 3.5から、@
記号は行列乗算演算子としても使用されています。@
は、2つのNumPyのarray
やmatrix
オブジェクトに対して行列の積を計算します。
例:
import numpy as np
# 2x2の行列を定義
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
# 行列の積
C = A @ B
print(C)
出力:
[[19 22]
[43 50]]
@
記号は、通常の要素ごとの積とは異なり、行列の数学的な乗算を行います。
まとめ
@
記号はPythonでは主にデコレータとして使われ、関数やメソッドに追加の機能を付与します。- Python 3.5以降では、行列乗算演算子としても使用され、行列の積を計算します。