1. 다양한 데이터를 분류하고 그 종류에 따라 취급 방법을 달리해야 한다. 이를 위한 약속이 필요하다.
  2. 파이썬의 모든 데이터는 객체이며, 클래스를 이용해 이를 분류한다. 어떤 클래스에 속하는 객체를 그 클래스의 인스턴스라고 한다.
  3. 클래스의 이름에 괄호를 붙여 인스턴스화 할 수 있다.
  4. class 문을 이용해 클래스를 직접 정의할 수 있다. class 문 안에는 클래스가 가질 속성을 정의한다.
  5. 클래스 또는 인스턴스의 속성으로 정의된 함수를 메서드라고 한다. 인스턴스를 기준으로 메서드를 호출할 경우, 그 인스턴스가 첫번째 인자로 전달된다. 메서드는 이를 관례적으로 self라는 매개변수로 전달받는다.
  6. __init__() 메서드를 이용해 인스턴스의 초기 속성을 정의한다.
  7. 클래스와 인스턴스는 일종의 이름공간이다. 이름공간은 문맥의 역할을 하며 상황에 따라 접근할 수 있는 범위가 상황에 따라 다르다.
  8. 클래스는 다른 클래스를 상속할 수 있다. 하위 클래스는 상위 클래스의 속성에 접근할 수 있다. 상속을 활용해 범주의 포함관계를 나타내거나 공통 속성을 재사용할 수 있다.
  9. 다른 사람이 클래스를 쉽고 안전하게 사용할 수 있도록 인터페이스를 잘 정의해야 한다. 이를 위해 클래스의 속성을 감추고 꼭 필요한 메서드만을 외부로 노출하는 캡슐화 기법을 활용한다.
  10. 다양한 이중 밑줄 메서드를 정의하여 클래스가 다양한 연산자, 함수, 상황에 대응하도록 지원할 수 있다.