파이썬의 최상위 클래스는 object이고, 클래스 정의 시 상속 하지 않아도 이 클래스를 기본으로 상속 I. 클래스 내부 속성 object 클래스는 스페셜 속성과 스페셜 메소드만으로 구성 특별한 기능은 없으며 속성이 없는 객체 생성 역할 [예제] 내부 속성 확인 list_array = [str, int, list, tuple, type(None), object, type] for i in dir(object) : if (type(object.__getattribute__(object, i))
I. 예약어로 관리되는 객체 가. None 객체 아무것도 없는 객체를 나타내는 예약어로 None 객체가 있음 [예제] None 객체 확인 print(type(None)) # None 객체 생성 클래스 print(None.__bool__()) # None 객체는 항상 False print(bool(None)) [결과] <class 'NoneType'> False False 나. bool 클래스의 객체 True/False는 예약어로, 내장 클래스 bool로 생성된 2개의 객체가 할당 [예제] bool 클래스 확인 #
I. 클래스와 객체의 관계 가. 클래스 정의 클래스로 객체를 만들어 관계 확인 [예제] 클래스 정의 class MyClass(object) : pass print(issubclass(MyClass, object)) # 클래스와 최상위 클래스 객체 상속 관계 print(issubclass(MyClass, type)) # 클래스와 메타클래스 상속 관계 print(isinstance(MyClass, type)) # 클래스는 메타클래스로 생성 [결과] True False True 나. 클래스와 객체 관계 확인 파이썬의 모든 클래스는 메타클래스로 생성되며,
I. 클래스 정의 머리부 – 예약어 class 클래스명 (상속 클래스명) – 기본 상속은 항상 object 클래스가 됨 몸체부 – 클래스의 데이터인 속성 (Attribute) – 객체를 생성할 때 속성을 정의하는 초기화 함수 – 객체와 클래스의 행위를 표현하는 함수들 (인스턴스 / 클래스 / 정적 메소드) [예제] 클래스 정의 class Car(object) : # 클래스 머리부 pass # 클래스