본문 바로가기

프로그래머/Python

[윤성우의 열혈 파이썬 중급편] 25. isintance 함수와 object 클래스

25. isintance 함수와 object 클래스

isinstance 함수

class Simple:
    pass

s = Simple()
isinstance(s, Simple)       # True
isinstance([1, 2], list)    # True

class Fruit:
    pass

class Apple(Fruit):
    pass

class SuperApple(Apple):
    pass

sa = SuperApple()
isinstance(sa, SuperApple)  # True
isinstance(sa, Apple)       # True
isinstance(sa, Fruit)       # True
  • 이 객체는 저 클래스의 객체인가?

object 클래스

class Simple:
    pass

isinstance(Simple(), object)    # True
isinstance([1, 2], object)      # True

class A:
    pass

class Z(A):
    pass

issubclass(Z, A)            # True
issubclass(type, object)    # True

dir(object)     # '__class__', "__delattr__' ...
  • 파이썬의 모든 클래스는 object 클래스를 직접 혹은 간접 상속한다
  • object 클래스의 상속을 명시하지 않아도 파이썬이 이를 직접 혹은 간접 상속하도록 클래스를 구성