https://docs.python.org/3/tutorial/controlflow.html#match-statements

__match_args__ 는
python 클래스를 만들면서 정의 본문에 두는 클래스 속성 (class attribute) 이다.

  • 이처럼 고유한 특성을 같는 클래스 속성들이 더 있다.

클래스에서 arg들의 매칭을 판단할때
__match_args__ 에 정의된 값에 순서로 값을 매핑한다. (이때 값은 반드시 튜플이어야 함)

class Sample:
   __match_args__ = ('x','y')
    • 뒤 이름 자리에 _를 쓰면 나머지는 묶어서 버립니다.
  • 예를 들어 case (x,y,*_) 는 길이가 2 이상인 시퀀스를 매칭하면
  • 앞의 두 값 (x,y에 해당하는 값)만 꺼내고 이후 항목은 무시한다. 이름이 _면 파이썬을 사용하는 사용자끼리는 의미 없는 값을 _ 에 의례적으로 저장하는 것으로 알기 때문에 무시한다.

파이썬에서 class 문이 실행되면, 그 즉시 “클래스 객체”가 만들어져서 클래스 이름(예: Sample)에 바인딩 된다. 그래서 인스턴스를 생성하지 않아도 클래스 이름의 객체가 이미 존재하고, 그 객체에 붙은 속성으로 Sample.__match_args__ 처럼 접근할 수 있다.

← python 3.14으로