2020년 7월 27일
[파이썬] 최상위 클래스 (Object)
- 파이썬의 최상위 클래스는 object이고, 클래스 정의 시 상속 하지 않아도 이 클래스를 기본으로 상속
I. 클래스 내부 속성
- object 클래스는 스페셜 속성과 스페셜 메소드만으로 구성
- 특별한 기능은 없으며 속성이 없는 객체 생성 역할
- [예제] 내부 속성 확인
list_array = [str, int, list, tuple, type(None), object, type] for i in dir(object) : if (type(object.__getattribute__(object, i)) in list_array) : print(i) # obejct 클래스 내 속성과 메소드 중 객체가 list_array 내 클래스이면 출력 [결과] __class__ __doc__
II. 클래스 내부 메소드
- [예제] 내부 메소드 확인
list_array = [str, int, list, tuple, type(None), object, type] count = 0 for i in dir(object) : if (type(object.__getattribute__(object, i)) not in list_array) : print(i, end=", ") # obejct 클래스 내 메소드 내장 클래스가 아니면 출력 count += 1 if count % 5 == 0 : print() [결과] __delattr__, __dir__, __eq__, __format__, __ge__, __getattribute__, __gt__, __hash__, __init__, __init_subclass__, __le__, __lt__, __ne__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__,
III. 문서화를 doctesting으로 테스트
- 클래스, 함수 등은 doctesting으로 문서화 가능
- [예제] doctesting 처리
import doctest def add(x, y) : ''' >>> add(5, 10) # 함수 정의 시 문서화에 >>> 와 함수 실행, 다음줄에 결과값 입력 15 ''' return x + y print(doctest.testmod()) # 함수를 테스트 모드로 실행 [결과] TestResults(failed=0, attempted=1) # 문서화 내부 함수 정상적으로 실행
[참고]
- 잇플, “한 권으로 개발자가 원하던 파이썬 심화 A to Z”, 2019.11