Python 3.5¶
아래는 MicroPython에 미치는 영향에 따라 그룹화한 Python 3.5의 확정/승인된 PEP 목록입니다.
구문 확장 |
상태 |
|
추가적인 언패킹 일반화 |
부분적 |
|
새로운 행렬 곱셈 연산자 |
완료 |
|
|
완료 |
|
런타임 확장 및 변경 |
||
바이너리 문자열에 대한 % 포매팅 |
완료 |
|
|
완료 |
|
제너레이터 내부의 |
완료 |
|
표준 라이브러리 변경 사항 |
||
|
||
|
완료 |
|
기타 변경 사항 |
||
Python zip 애플리케이션 지원 개선 |
||
Python 런처가 가상 환경을 인식하도록 함 |
해당 없음 |
|
타입 힌트(권고용) |
완료 [1] |
|
PYO 파일 제거 |
해당 없음 |
|
확장 모듈 로딩 재설계 |
||
기타 언어 변경 사항:
namereplace 오류 핸들러가 추가되었습니다. backslashreplace 오류 핸들러는 이제 디코딩 및 변환에서도 작동합니다. |
|
프로퍼티 독스트링을 이제 쓸 수 있습니다. 이는 collections.namedtuple() 독스트링에 특히 유용합니다 |
|
상대 임포트를 포함하는 순환 임포트가 이제 지원됩니다. |
새로운 모듈:
내장 모듈 변경 사항:
OrderedDict 클래스가 이제 C로 구현되어 4배에서 100배 빨라졌습니다. |
|
OrderedDict.items() , OrderedDict.keys() , OrderedDict.values() 뷰가 이제 reversed() 반복을 지원합니다. |
|
deque 클래스는 이제 index(), insert(), copy() 를 정의하며 + 및 * 연산자를 지원합니다. |
|
namedtuple()이 생성하는 독스트링을 이제 갱신할 수 있습니다. |
|
UserString 클래스는 이제 str의 해당 메서드와 일치하도록 __getnewargs__(), __rmod__(), casefold(), format_map(), isprintable(), maketrans() 메서드를 구현합니다. |
|
merge() 의 요소 비교를 이제 새로운 선택적 key 키워드 인수에 key 함수를 전달하여 사용자 정의할 수 있으며, 새로운 선택적 reverse 키워드 인수를 사용하여 요소 비교를 역순으로 할 수 있습니다 |
|
기반 원시 스트림의 RawIOBase.read() 또는 RawIOBase.readinto() 메서드를 최대 한 번만 호출하는 새로운 BufferedIOBase.readinto1() 메서드 |
|
JSON 디코더는 오류에 대한 더 나은 컨텍스트 정보를 제공하기 위해 이제 ValueError 대신 JSONDecodeError를 발생시킵니다. |
|
math 모듈에 두 개의 새로운 상수가 추가되었습니다: inf 와 nan. |
완료 |
새로운 함수 isclose() 는 근사 동등성을 테스트하는 방법을 제공합니다. |
|
새로운 gcd() 함수가 추가되었습니다. fractions.gcd() 함수는 이제 사용 중단되었습니다. |
|
DirEntry 객체의 이터레이터를 반환하는 새로운 scandir() 함수가 추가되었습니다. |
|
urandom() 함수는 이제 Linux 3.17 이상에서 getrandom() 시스템 콜을, OpenBSD 5.6 이상에서 getentropy() 를 사용하여, /dev/urandom을 사용할 필요를 없애고 잠재적인 파일 디스크립터 고갈로 인한 실패를 방지합니다. |
|
새로운 get_blocking() 및 set_blocking() 함수를 사용하면 파일 디스크립터의 블로킹 모드(O_NONBLOCK)를 가져오고 설정할 수 있습니다. |
|
전달된 각 경로명의 가장 긴 공통 하위 경로를 반환하는 새로운 os.path.commonpath() 함수가 있습니다 |
|
고정 길이 그룹에 대한 참조 및 조건부 참조가 이제 후방 탐색(lookbehind) 단언에서 허용됩니다 |
|
정규 표현식의 캡처 그룹 수가 더 이상 100개로 제한되지 않습니다. |
|
sub() 및 subn() 함수는 이제 매칭되지 않은 그룹을 예외를 발생시키는 대신 빈 문자열로 대체합니다. |
|
re.error 예외에는 오류에 대한 더 나은 컨텍스트 정보를 제공하는 새로운 속성인 msg, pattern, pos, lineno, colno가 추가되었습니다 |
|
타임아웃이 있는 함수는 이제 시스템 클록 대신 단조 클록(monotonic clock)을 사용합니다. |
|
새로운 socket.sendfile() 메서드를 사용하면 UNIX에서 고성능 os.sendfile() 함수를 사용하여 소켓을 통해 파일을 전송할 수 있으며, 그 결과 단순한 socket.send() 사용 대비 업로드가 2~3배 빨라집니다 |
|
socket.sendall() 메서드는 더 이상 바이트를 수신하거나 전송할 때마다 소켓 타임아웃을 재설정하지 않습니다. 이제 소켓 타임아웃은 모든 데이터를 전송하는 데 걸리는 최대 총 시간입니다. |
|
socket.listen() 메서드의 backlog 인수가 이제 선택 사항입니다. 기본적으로 SOMAXCONN 또는 128 중 더 작은 값으로 설정됩니다. |
완료 |
메모리 BIO 지원 |
|
애플리케이션 계층 프로토콜 협상(ALPN) 지원 |
|
사용 중인 실제 프로토콜 버전을 조회하는 새로운 SSLSocket.version() 메서드가 있습니다. |
|
SSLSocket 클래스는 이제 SSLSocket.sendfile() 메서드를 구현합니다. |
|
SSLSocket.send() 메서드는 이제 논블로킹 소켓에서 작업이 블로킹될 경우 ssl.SSLWantReadError 또는 ssl.SSLWantWriteError 예외를 발생시킵니다. 이전에는 0을 반환했습니다. |
|
cert_time_to_seconds() 함수는 이제 RFC 5280에 따라 입력 시간을 로컬 시간이 아닌 UTC로 해석합니다. 또한 반환 값은 항상 int입니다. |
|
새로운 SSLObject.shared_ciphers() 및 SSLSocket.shared_ciphers() 메서드는 핸드셰이크 중 클라이언트가 보낸 암호 방식 목록을 반환합니다. |
|
SSLSocket 클래스의 SSLSocket.do_handshake(), SSLSocket.read(), SSLSocket.shutdown(), SSLSocket.write() 메서드는 더 이상 바이트를 수신하거나 전송할 때마다 소켓 타임아웃을 재설정하지 않습니다. |
|
match_hostname() 함수는 이제 IP 주소 매칭을 지원합니다. |
|
새로운 set_coroutine_wrapper() 함수를 사용하면 async def 함수에 의해 코루틴 객체가 생성될 때마다 호출될 전역 후크를 설정할 수 있습니다. 해당하는 get_coroutine_wrapper() 를 사용하여 현재 설정된 래퍼를 가져올 수 있습니다. |
|
새로운 is_finalizing() 함수를 사용하여 Python 인터프리터가 종료 중인지 확인할 수 있습니다. |
|
monotonic() 함수를 이제 항상 사용할 수 있습니다 |
|
참고