Python의 명명된 튜플은 내장 튜플 데이터 유형의 확장으로, 튜플의 요소에 의미 있는 이름을 지정할 수 있습니다. 즉, 명명된 튜플은 명명된 속성을 가진 튜플입니다. 멋지지 않나요?
컬렉션 모듈의 일부이며 간단하고 변경 불가능한 클래스를 더 간단한 방법으로 정의하는 방법을 제공합니다.
잠깐, 수업?
네, 수업입니다.
네임드 튜플은 본질적으로 불변 클래스입니다.
이것은 마술처럼 발생합니다. 명명된 튜플을 사용하여 명명된 튜플을 만들면 결과는 튜플 자체의 인스턴스가 아니라 튜플에서 상속되는 동적으로 생성된 클래스입니다. 이번에도 멋지네요!!
이것이 어떻게 작동하는지 살펴보겠습니다.
from collections import namedtuple P = namedtuple("Point", "x y")
P =namedtuple("Point", "x y")를 실행하면 Point라는 새 클래스가 생성됩니다(namedtuple의 첫 번째 인수에 지정된 대로).
namedtuple 함수는 배후에서 유형을 사용하여 튜플에서 상속되는 Point라는 새 클래스를 동적으로 생성합니다. 이 새로운 클래스는 변수 P에 저장됩니다.
클래스와 마찬가지로 유형도 type입니다.
> type(P) class 'type'
> class A: pass > type(A) class 'type'
네임드튜플의 인스턴스는 어떤 유형인가요?
from collections import namedtuple P = namedtuple("Point", "x y") p = P(1,2) > print(type(p)) class '__main__.Point'
p는 Point 유형의 인스턴스입니다. 하지만 이는 튜플이기도 합니다.
> print(isinstance(p, tuple)) True
요약:
마지막으로 한 가지:
동적으로 생성된 클래스인 유형 이름(Point라고 함)과 동일한 이름으로 명명된 튜플 변수(P라고 함)의 이름을 지정하는 것은 매우 일반적입니다.
from collections import namedtuple Point = namedtuple("Point", "x y")
두 가지를 명확히 구분하기 위해 다른 이름을 사용했습니다.
위 내용은 Python의 명명된 튜플: 어떤 유형인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!