30초 만에 이해하는 Python의 연산자

30초 만에 이해하는 Python의 연산자
SeedividendPosted On Aug 17, 20243 min read

안녕하세요! 아래는 Markdown 형식으로 표를 변경한 것입니다.

이미지

이건 참 뜻밖의 일이었어요.

이 파이썬 연산자는 내가 여태껏 놓쳐 왔던 것이었어요. 그런데 이제야 알게 되었네요.

@ 연산자는 행렬 곱셈을 위한 연산자에요. (데코레이터 구문의 @와는 구분해야 합니다)

결과 = 행렬1 @ 행렬2

우리는 주로 numpy에서 이것을 사용해요

Numpy의 간단한 예시

우리는 numpy에서 @를 사용하여 행렬 곱셈을 수행합니다.

import numpy as np

m1 = np.array([[1, 2], [3, 4]])
m2 = np.array([[1, 2], [2, 1]])

print(m1 @ m2)

# [[ 5  4]
#  [11 10]]

여기서는 @ 연산자를 사용하여 2개의 행렬 m1과 m2를 곱해줍니다.

matmul을 사용하여 사용자 정의하기

이를 사용자 정의하려면 matmul 매직 메서드를 정의하기만 하면 됩니다.

class Dog:
    def __matmul__(self, other):
        return f'hello {other}'

dog = Dog()

print(dog @ 500)    # hello 500

기본적으로 객체는 matmul 매직 메서드를 정의하지 않는 한 @ 연산자를 사용할 수 없음을 유념하십시오.

class Dog:
    pass

dog = Dog()

print(dog @ 500)    # ERROR

결론

matmul을 사용하면 이제 객체들이 @ 연산자를 사용할 수 있습니다. 이해하기 쉽고 명확했기를 바랍니다.

만약 제가 크리에이터로서 저를 지원하고 싶다면

  • https://zlliu.substack.com/ 에서 내 Substack 뉴스레터 가입하기 - 나는 매주 Python에 관련된 이메일을 보냅니다.
  • https://payhip.com/b/vywcf 에서 나의 책 101 Things I Never Knew About Python 구매하기
  • 이 이야기에 대해 50번 박수치기
  • 여러분의 생각을 나에게 알려 주는 댓글 남기기
  • 이야기 중 가장 마음에 드는 부분을 강조하기

감사합니다! 이 작은 행동들이 많은 도움이 되고, 정말 감사합니다!

YouTube: https://www.youtube.com/@zlliu246

LinkedIn: https://www.linkedin.com/in/zlliu/