일단해봐

[Python] 클래스(Class) 선언 시 Object 상속 하는 경우? [Class(Object) ?] 본문

Python

[Python] 클래스(Class) 선언 시 Object 상속 하는 경우? [Class(Object) ?]

GoEz 2021. 4. 19. 20:26

이 글을 참조하여 작성했습니다.

Open Source를 찾다보면 간혹 클래스(Class) 선언 시 Object를 상속하는 것 처럼 사용하는 Code가 보인다.

class myclass(object):
    pass

결로 부터 말하면 일반적으로 뒤의 (object)는 써도 되고 안써도 된다.

문제가 되는 상황은 Pyhton 3.X에서 Class 정의 시 object를 안쓰고 작성한 Code를 Python 2.X에서 사용 할 경우 어떤한 오동작이 발생 할지 알수 없다고 한다.

따라서 가급적 Object를 붙여 주는 것이 좋다.

 

Code Python 2.X Python 3.X
Class myclass(object) new-style 클래스 new-style 클래스
Class myclass old-style 클래스 new-style 클래스

 

위 표에서 보듯이 클래스 뒤에 (object)를 붙여 주면 버전에 상관없이 <new-style 클래스>가 되지만 안붙일 경우 Python 버전에 따라 old-style이 될 수 도 있다. 

추가로 설명하면 Python의 최상위 클래스가 Object 이며 따라서 클래스가 Object를 상속받는 것이다.

Comments