[PYTHON] 파이썬에서 클래스 foo와 클래스 foo (객체)의 차이점
PYTHON파이썬에서 클래스 foo와 클래스 foo (객체)의 차이점
클래스 foo (object)는 클래스를 정의하는 오래된 학교 방식이라는 것을 알고 있습니다. 그러나이 두 가지의 차이점을보다 자세히 이해하고자합니다.
해결법
-
==============================
1.파이썬 2.2 이전에는 클래스의 본질적으로 두 가지 유형이있었습니다 : C 확장 및 C 코드 내장 (유형)으로 정의 된 클래스와 파이썬 클래스 문장 (클래스)으로 정의 된 클래스. 이것은 파이썬 유형과 내장 유형을 혼합하고자 할 때 문제가되었습니다. 이것에 대한 가장 일반적인 이유는 하위 클래스 화입니다. 파이썬 코드로리스트 타입을 서브 클래스 화하고자한다면, 운이 좋지 않으므로 대신 순수 파이썬 구현 목록을 UserList 모듈에 서브 클래스 화하는 등의 다양한 해결 방법이 사용됩니다.
파이썬 2.2 이전에는 클래스의 본질적으로 두 가지 유형이있었습니다 : C 확장 및 C 코드 내장 (유형)으로 정의 된 클래스와 파이썬 클래스 문장 (클래스)으로 정의 된 클래스. 이것은 파이썬 유형과 내장 유형을 혼합하고자 할 때 문제가되었습니다. 이것에 대한 가장 일반적인 이유는 하위 클래스 화입니다. 파이썬 코드로리스트 타입을 서브 클래스 화하고자한다면, 운이 좋지 않으므로 대신 순수 파이썬 구현 목록을 UserList 모듈에 서브 클래스 화하는 등의 다양한 해결 방법이 사용됩니다.
이것은 상당히 추한 것이 었습니다. 그래서 2.2에서 파이썬과 빌트인 타입을 통합하는 움직임이있었습니다. 그것들을 상속하는 능력도 포함되었습니다. 결과는 "새로운 스타일 클래스"입니다. 이것들은 old-style 클래스들과 몇가지 호환되지 않는 차이점을 가지고 있습니다. 그래서 이전 버전과의 호환성을 위해 bare 클래스 구문은 구식 클래스를 생성하는 반면, 새로운 동작은 객체로부터 상속함으로써 얻어집니다. 가장 눈에 띄는 동작 차이는 다음과 같습니다.
-
==============================
2.class foo (object) : 클래스를 선언하는 '새로운'방법입니다.
class foo (object) : 클래스를 선언하는 '새로운'방법입니다.
이 변경은 파이썬 2.2에서 이루어졌으며 차이에 대한 설명은이 PEP를 참조하십시오.
-
==============================
3.객체를 서브 클래스 화하면 새로운 스타일의 클래스가 생성됩니다. 새로운 스타일의 두 가지 장점은 다음과 같습니다.
객체를 서브 클래스 화하면 새로운 스타일의 클래스가 생성됩니다. 새로운 스타일의 두 가지 장점은 다음과 같습니다.
from https://stackoverflow.com/questions/332255/difference-between-class-foo-and-class-fooobject-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Python Selenium에서 속성으로 요소를 찾는 방법이 있습니까? (0) | 2018.10.25 |
---|---|
[PYTHON] Python try finally 블록 반환 [duplicate] (0) | 2018.10.25 |
[PYTHON] 파이썬 : 함수에 대한 정보를 얻는 방법? (0) | 2018.10.25 |
[PYTHON] 목록에있는 값의 일부보다 큰 목록의 목록을 반환합니다. (0) | 2018.10.25 |
[PYTHON] import 문 앞에 pythonpath를 설정하십시오. (0) | 2018.10.25 |