[파이썬] 최상위 클래스 (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

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^