1. Class 선언
  - 클래스명은 캐멀 표기법으로 한다. 첫 글자는 대문자.
  - self : 클래스의 메소드 위치 기본 변수로 항상 정의해야 하지만, 메소드 호출 시에는 없는 것 처럼 사용한다.
  - 클래스 변수 : 클래스 내의 함수 밖에 정의된 변수는 클래스 변수가 된다.
  - 인스턴스 변수 : ___init__() 함수에서 인스턴스 변수를 선언한다.

2. 데이터 은닉과 이름 장식
    - 변수를 은닉하기 위해서는 '__변수명' 양식으로 정의한다.
    - 은닉된 인스턴스 변수는 외부에서 접근할 수 없지만, 클래스 변수는 '클래스._클래스__변수명'으로 접근할 수 있다.

3. 상속
    - 다중상속과 다형성 지원한다.
    - 객체의 클래스타입 확인 방법: 객체.__class__  또는 type(객체)
    - 부모클래스 확인 방법: 클래스명.__bases__
    - __main__ : 실행환경 최상단 위치라는 의미
    - super() 지시어. 자식 객체에서 부모 객체를 접근하게 해준다. 부모의 메소드를 호출할 때 주로 사용한다.

4. Class 정의 예

    class SuperMan(Human, Man):         # 다중상속이 가능한다.
        __country = 'South Korea'       # 클래스 변수. 변수 은닉. Dog._Dog__country 로 호출
        def __init__(self, name):       # 초기화 메소드. 생성자와 유사
            self.name = name
            self.tricks = []
        def fly(self):
            super().fly()               # 부모 메소드 호출
            print(self.name + ' can fly faster.')

 

end.

 

728x90

+ Recent posts