파이썬 중급에서는 함수와 모듈, 객체지향 프로그래밍, 클래스 그리고 예외처리와 파일 입출력을 배운다.
클래스를 만들면 그 클래스에 대한 객체를 생성할 수 있게 된다.
예를 들면, 자동차를 찍어내는 큰 틀이 있으면 모양은 같고 색이 다른 자동차를 많이 만들수 있는 것과 비슷하다.
장점 : 코드 재사용, 모듈화에 좋다.
클래스는 class키워드와 속성 그리고 기능을 이용해서 만든다.
클래스명은 대문자로 시작한다.
클래스를 호출함으로써 객체를 생성한다.
객체가 생성될때 생성자를 호출하면 __init__()가 자동 호출된다.
__init__()는 속성을 초기화한다.
속성값이 선언되어 있다면, 얼마든지 바꿀수 있다.
변수는 객체의 메모리 주소를 저장하고 이를 이용해서 객체를 참조한다.
얕은 복사는 객체의 주소를 복사하는 것으로 객체 자체는 복사되지 않는다.
객체 자체를 복사하는 것은 깊은 복사로, 또 다른 객체가 만들어진다.
상속 : 부모 클래스의 기능을 자식 클래스에서 쓸수 있게 하는 것이다.
자식 클래스를 선언하면서 매개변수 자리에 부모클래스명을 써줌으로써 간단하게 상속된다.
자식 클래스에서 여러 부모클래스를 상속하고 있다면 그것은 다중상속이다. 그러나 다중상속은 코드의 혼잡성을 높이기 때문에 남발해서는 안된다.
상위 클래스의 속성을 초기화하기 위해서는 super().__init__()을 이용한다.
overide : 자식 클래스와 부모 클래스에 같은 이름의 함수가 있다면, 자식 클래스에 있는 함수가 오버라이딩 해서 프로그램 전체에서 실행된다.
추상클래스는 상위 클래스에서 하위 클래스에 메서드 구현을 강요하는 것을 말한다.
from abc import ABCMeta
from abc import abstractmethod
class AirPlane(metaclass==ABCMeta):
@abstractmethod
def flight(self):
pass
위와 같이 추상클래스는 먼저 선언해야하는 문법이 존재한다.