Python 3.7

새로운 기능:

기능

상태

PEP 538

레거시 C 로케일을 UTF-8 기반 로케일로 강제 변환

PEP 539

CPython의 스레드 로컬 저장소를 위한 새로운 C-API

PEP 540

UTF-8 모드

PEP 552

결정론적 pyc

PEP 553

내장 breakpoint()

PEP 557

데이터 클래스

PEP 560

typing 모듈 및 제네릭 타입에 대한 핵심 지원

PEP 562

모듈 __getattr____dir__

부분 구현

PEP 563

어노테이션의 지연 평가

PEP 564

나노초 해상도를 가진 시간 함수

부분 구현 [1]

PEP 565

__main__ 에서 DeprecationWarning 표시

PEP 567

컨텍스트 변수

기타 언어 변경 사항:

asyncawait 가 이제 예약 키워드입니다

완료

dict 객체는 삽입 순서를 보존해야 합니다

이제 함수에 255개를 초과하는 인자를 전달할 수 있으며, 함수는 255개를 초과하는 매개변수를 가질 수 있습니다

bytes.fromhex()bytearray.fromhex() 는 이제 공백뿐만 아니라 모든 ASCII 공백 문자를 무시합니다

str, bytes, bytearray 에 새로운 isascii() 메서드 지원이 추가되었으며, 이를 사용하여 문자열이나 바이트가 ASCII 문자만 포함하는지 테스트할 수 있습니다

from ... import ... 가 실패할 때 ImportError 가 이제 모듈 이름과 모듈 __file__ 경로를 표시합니다

하위 모듈을 이름에 바인딩하는 절대 임포트를 포함한 순환 임포트가 이제 지원됩니다

object.__format__(x, '') 는 이제 format(str(self), '') 가 아니라 str(x) 와 동등합니다

스택 트레이스의 동적 생성을 더 잘 지원하기 위해 types.TracebackType 을 이제 Python 코드에서 인스턴스화할 수 있으며, 트레이스백의 tb_next 속성을 이제 쓸 수 있습니다

-m 스위치를 사용할 때, sys.path[0] 는 이제 빈 디렉터리로 남겨지는 대신(이는 임포트가 발생하는 시점의 현재 작업 디렉터리로부터의 임포트를 허용함) 즉시 전체 시작 디렉터리 경로로 확장됩니다

새로운 -X importtime 옵션이나 PYTHONPROFILEIMPORTTIME 환경 변수를 사용하여 각 모듈 임포트의 소요 시간을 표시할 수 있습니다

내장 모듈 변경 사항:

asyncio

나열하기에는 너무 많음

gc

새로운 기능으로 gc.freeze(), gc.unfreeze(), gc-get_freeze_count 가 있습니다

math

IEEE 754 스타일의 나머지를 구현하기 위해 math.remainder()가 추가되었습니다

re

빈 문자열에서의 분할에 대한 개선된 지원과 컴파일된 표현식 및 매치 객체에 대한 복사 지원을 포함한 여러 정리 기능

sys

sys.breakpointhook()가 추가되었습니다. sys.get(/set)_coroutine_origin_tracking_depth()가 추가되었습니다

time

대부분 위에서 언급한 PEP564의 나노초 해상도를 지원하기 위한 업데이트입니다

참고