클래스는 데이터와 동작을 묶는 사용자 타입이다. 인스턴스 메서드의 첫 매개변수 `self`는 호출된 객체다.
class Game:
species = "janggi"
def __init__(self, name: str) -> None:
self.name = name
self.moves: list[str] = []
def add(self, move: str) -> None:
self.moves.append(move)`game.add(move)`는 본질적으로 `Game.add(game, move)`다. Python에는 C++식 private 접근 강제가 없다. `_name`은 내부 구현이라는 관례이고, `__name`은 클래스 이름을 섞어 우연한 충돌을 줄일 뿐 보안 장치가 아니다.
클래스 메서드는 `@classmethod`로 클래스를 첫 인자 `cls`로 받고 대체 생성자에 맞다. 정적 메서드는 객체나 클래스 상태를 쓰지 않는 관련 함수다. 관련성도 없다면 모듈 함수로 두는 편이 단순하다.
댓글
0개아직 댓글이 없습니다.