[Python] 메타클래스를 고려한 Scoping Rule

azzurri21·2021년 6월 26일
0

Python Scoping Rule

목록 보기
2/3

※ 기존에 알고 있던 Scoping Rule을 바탕으로 직접 추측한 내용이므로 오류일 가능성이 있습니다.

Scoping Rule (메타클래스 고려 X)

자세한 내용은 이전 포스트인 상속과 네임스페이스에서 확인.

인스턴스.변수로 변수에 접근할 때, 아래 순서로 namespace에서 변수 이름을 찾는다고 알고 있다.

  1. 인스턴스 객체 영역
  2. 클래스 객체 영역
  3. 전역 영역

여기서, 인스턴스 영역 이후에 인스턴스의 틀인 클래스 영역을 찾는다.
그러므로 클래스 영역 이후에는 클래스의 틀인 메타클래스 영역을 찾는다고 생각할 수 있다.

Scoping Rule (메타클래스 고려 O)

인스턴스의 스코핑 룰(Scoping Rule) - 메타클래스 개념을 포함하여

  1. 인스턴스 객체 영역
  2. 클래스 객체 상속 영역 (자식 -> 부모)
  3. 메타클래스 객체 상속 영역 (자식 -> 부모)
  4. 전역 영역

클래스의 스코핑 룰(Scoping Rule) - 메타클래스 개념을 포함하여

  1. 클래스 객체 상속 영역 (자식 -> 부모)
  2. 메타클래스 객체 상속 영역 (자식 -> 부모)
  3. 전역 영역

[참고] 메타클래스의 부모는 주로 type 메타클래스임.

profile
파이썬 백엔드 개발자

0개의 댓글