데이터형
********

이 장에서 설명하는 모듈은 날짜와 시간, 고정형 배열, 힙 큐, 데크, 열거
형과 같은 다양한 특수 데이터형을 제공합니다.

파이썬은 또한 일부 내장 데이터형, 특히 "dict", "list", "set"과
"frozenset", "tuple"을 제공합니다. "str" 클래스는 유니코드 문자열을 저
장하는 데 사용되고, "bytes"와 "bytearray" 클래스는 바이너리 데이터를
저장하는 데 사용됩니다.

이 장에서는 다음 모듈에 관해 설명합니다:

* "datetime" --- 기본 날짜와 시간 형

  * 어웨어와 나이브 객체

  * 상수

  * 사용 가능한 형

    * 공통 속성

    * 객체가 어웨어한지 나이브한지 판단하기

  * "timedelta" 객체

    * 사용 예: "timedelta"

  * "date" 객체

    * 사용 예: "date"

  * "datetime" 객체

    * 사용 예: "datetime"

  * "time" 객체

    * 사용 예: "time"

  * "tzinfo" 객체

  * "timezone" 객체

  * "strftime()"과 "strptime()" 동작

    * "strftime()"과 "strptime()" 포맷 코드

    * 기술적 세부 사항

* "zoneinfo" --- IANA 시간대 지원

  * "ZoneInfo" 사용하기

  * 데이터 소스

    * 데이터 소스 구성

      * 컴파일 시간 구성

      * 환경 구성

      * 실행 시간 구성

  * "ZoneInfo" 클래스

    * 문자열 표현

    * 피클 직렬화

  * 함수

  * 전역

  * 예외와 경고

* "calendar" --- 일반 달력 관련 함수

* "collections" --- 컨테이너 데이터형

  * "ChainMap" 객체

    * "ChainMap" 예제와 조리법

  * "Counter" 객체

  * "deque" 객체

    * "deque" 조리법

  * "defaultdict" 객체

    * "defaultdict" 예

  * 이름있는 필드를 가진 튜플을 위한 "namedtuple()" 팩토리 함수

  * "OrderedDict" 객체

    * "OrderedDict" 예제와 조리법

  * "UserDict" 객체

  * "UserList" 객체

  * "UserString" 객체

* "collections.abc" --- 컨테이너의 추상 베이스 클래스

  * Collections 추상 베이스 클래스

* "heapq" --- 힙 큐 알고리즘

  * 기본 예

  * 우선순위 큐 구현 참고 사항

  * 이론

* "bisect" --- 배열 이진 분할 알고리즘

  * 정렬된 리스트 검색하기

  * 다른 예제

* "array" --- 효율적인 숫자 배열

* "weakref" --- 약한 참조

  * 약한 참조 객체

  * 예

  * 파이널라이저 객체

  * 파이널라이저와 "__del__()" 메서드의 비교

* "types" --- 동적 형 생성과 내장형 이름

  * 동적 형 생성

  * 표준 인터프리터 형

  * 추가 유틸리티 클래스와 함수

  * 코루틴 유틸리티 함수

* "copy" --- 얕은 복사와 깊은 복사 연산

* "pprint" --- 예쁜 데이터 인쇄기

  * PrettyPrinter 객체

  * 예제

* "reprlib" --- 대안 "repr()" 구현

  * Repr 객체

  * Repr 객체 서브 클래싱

* "enum" --- 열거형 지원

  * 모듈 내용

  * Enum 만들기

  * 열거형 멤버와 그들의 어트리뷰트에 프로그래밍 방식으로 액세스하기

  * 열거형 멤버와 값 중복하기

  * 고유한 열거형 값 보장하기

  * 자동 값 사용하기

  * 이터레이션

  * 비교

  * 열거형의 허용된 멤버와 어트리뷰트

  * 제한된 Enum 서브 클래싱

  * 피클링

  * 함수형 API

  * 파생된 열거형

    * IntEnum

    * IntFlag

    * Flag

    * 기타

  * "__new__()"나 "__init__()"를 사용할 때

  * 흥미로운 예

    * 값 생략하기

      * "auto" 사용하기

      * "object" 사용하기

      * 설명 문자열 사용하기

      * 사용자 정의 "__new__()" 사용하기

    * OrderedEnum

    * DuplicateFreeEnum

    * 행성

    * TimePeriod

  * 열거형은 어떻게 다릅니까?

    * 열거형 클래스

    * 열거형 멤버 (일명 인스턴스)

    * 세부 사항

      * 지원되는 "__dunder__" 이름

      * 지원되는 "_sunder_" 이름

      * _Private__names

      * "Enum" 멤버 형

      * "Enum" 클래스와 멤버의 불리언 값

      * 메서드가 있는 "Enum" 클래스

      * "Flag" 멤버를 결합하기

* "graphlib" --- 그래프와 유사한 구조에 작동하는 기능

  * 예외
