Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 이전 스타일과 새 스타일 클래스의 차이점은 무엇입니까?


Python 2.x에는 기본 클래스로 내장 유형이 있는지 여부에 따라 두 가지 스타일의 클래스가 있습니다. −

"classic" style or old style classes have no built-in type as a base class:
>>> class OldSpam:      # no base class
...     pass
>>> OldSpam.__bases__
()

"새" 스타일 클래스:기본 클래스로 내장 유형이 있습니다. 즉, 직접 또는 간접적으로 객체를 기본 클래스로 가집니다. −

>>> class NewSpam(object):           # directly inherit from object
...    pass
>>> NewSpam.__bases__
(<type 'object'>,)
>>> class IntSpam(int):              # indirectly inherit from object...
...    pass
>>> IntSpam.__bases__
(<type 'int'>,)
>>> IntSpam.__bases__[0].__bases__   # ... because int inherits from object
(<type 'object'>,)

수업을 작성할 때 항상 새로운 스타일의 수업을 원할 것입니다. 그렇게 함으로써 얻을 수 있는 이점은 무수히 많습니다. 그 중 일부를 나열하자면 −

설명자 지원. 특히 다음과 같은 구성은 설명자를 사용하여 가능합니다 -

클래스 메소드 − 인스턴스 대신 암시적 인수로 클래스를 받는 메서드.

정적 방법 − 암시적 인수 self를 첫 번째 인수로 받지 않는 메서드입니다.

속성이 있는 속성:속성 가져오기, 설정 및 삭제를 관리하는 함수를 만듭니다.

Python 3.x는 새로운 스타일 클래스만 암시적으로 지원합니다. 클래스 선언에서 괄호 안에 개체라는 단어를 언급할 필요가 없습니다.