@ Python의 기호

Rohan Timalsina 2023년6월21일
  1. Python의 데코레이터에서 @ 기호 사용
  2. Python에서 @ 기호를 사용하여 행렬 곱하기
@ Python의 기호

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의 @ 기호는 데코레이터와 행렬 곱셈에 사용됩니다.

이제 파이썬에서 @ 기호가 무엇을 하는지 이해해야 합니다. 이 튜토리얼이 도움이 되었기를 바랍니다.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - Python Symbol