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__ 처럼 접근할 수 있다.