데이터와 동작을 하나의 객체로 묶습니다.
class는 같은 구조와 행동을 가진 객체를 만드는 설계도입니다. __init__은 새 인스턴스가 만들어진 뒤 초기 상태를 설정하고 self는 현재 인스턴스를 가리킵니다.
Course('Python', 56)을 호출하면 새 인스턴스가 만들어진 뒤 __init__이 self.title과 self.lessons에 값을 저장합니다. python.summary()는 그 인스턴스를 self로 받아 f-string을 만들고 Python: 56강을 출력합니다. 변수 이름 python은 언어 이름과 같아도 그저 인스턴스를 가리키는 이름입니다.
인스턴스마다 self.title 같은 속성이 따로 존재하고 메서드는 class에 공유됩니다. 클래스 이름은 CapWords 관례를 사용합니다.
단순 데이터 묶음에는 dataclass가 더 간결할 수 있고, 클래스는 상태와 그 상태를 지키는 규칙이 함께 있을 때 특히 유용합니다.
메서드를 호출할 때 self를 직접 넘기지 않습니다. instance.method()가 자동으로 인스턴스를 전달합니다.
직접 바꿔보세요total과 completed를 받아 진도율을 반환하는 메서드를 추가하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.