@ Python の記号
    
    Rohan Timalsina
    2023年6月21日
    
    Python
    Python Symbol
    
 
Python での @ 記号の最も一般的な使用例は、デコレータです。 デコレーターを使用すると、関数またはクラスの動作を変更できます。
@ 記号は、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 で行列を乗算する
Python 3.5 から、@ 記号を演算子として使用して、Python で行列の乗算を実行することもできます。
次の例は、Python で行列を乗算する簡単な実装です。
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 の @ 記号は、デコレータと行列の乗算で使用されます。
@ 記号が Python で何をするかを理解する必要があります。 このチュートリアルがお役に立てば幸いです。
        チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
    
著者: Rohan Timalsina
    
