>백엔드 개발 >파이썬 튜토리얼 >Python의 명명된 튜플: 어떤 유형인가요?

Python의 명명된 튜플: 어떤 유형인가요?

DDD
DDD원래의
2024-11-23 05:31:24825검색

Named Tuples in Python: what type are they?

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

요약:

  • P는 네임튜플에 의해 동적으로 생성된 클래스입니다.
  • P의 인스턴스는 하위 클래스이기도 한 Point 유형의 객체입니다. 튜플.

마지막으로 한 가지:

동적으로 생성된 클래스인 유형 이름(Point라고 함)과 동일한 이름으로 명명된 튜플 변수(P라고 함)의 이름을 지정하는 것은 매우 일반적입니다.

from collections import namedtuple 

Point = namedtuple("Point", "x y")

두 가지를 명확히 구분하기 위해 다른 이름을 사용했습니다.

위 내용은 Python의 명명된 튜플: 어떤 유형인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.