Python 3.8은 Python 언어의 최신 버전으로 스크립팅, 자동화, 머신러닝, 웹 개발 등 다양한 작업에 적합합니다. 이제 Python 3.8이 공식 베타 단계에 진입했으므로 이 버전은 많은 구문 변경, 메모리 공유, 보다 효율적인 직렬화 및 역직렬화, 향상된 사전 및 더 많은 새로운 기능을 제공합니다.
Python 3.8에서는 성능도 많이 향상되었습니다. 전반적으로 우리는 더 빠르고, 더 정확하고, 더 일관되고, 더 현대적인 Python을 갖게 될 것입니다. 다음은 Python 3.8의 새로운 기능과 가장 중요한 변경 사항입니다.
1. 할당 표현식
Python 3.8에서 가장 눈에 띄는 변화는 할당 표현식, 즉 := 연산자입니다. 할당 표현식은 변수가 존재하지 않는 경우에도 변수에 값을 할당할 수 있습니다. 별도의 문장으로 나타나지 않고 표현식에 사용될 수 있습니다.
위의 예에서는 line이라는 변수가 존재하지 않으면 생성되고, file.readline()의 반환값이 할당됩니다. 그런 다음 줄이 "끝"인지 확인하십시오. 그렇지 않은 경우 다음 줄을 읽고 해당 줄에 저장한 후 테스트를 계속하세요.
할당 표현식은 목록 이해와 마찬가지로 Python의 단순성 전통을 따릅니다. 그 목적은 특정 Python 프로그래밍 모델에서 지루한 상용구 코드를 피하는 것입니다. 예를 들어, 위의 코드를 일반적인 방법으로 작성하려면 두 줄의 코드가 더 필요합니다.
관련 권장사항: "Python 비디오 튜토리얼"
2. 위치로만 지정되는 매개변수
위치로만 지정되는 매개변수는 프로그래머가 특정 매개변수를 강제로 지정할 수 있도록 하는 함수 정의의 새로운 구문입니다. 위치별로. 이는 어떤 매개변수가 위치 매개변수이고 어떤 매개변수가 키워드 매개변수인지에 대한 Python 함수 정의의 모호성을 해결합니다.
위치로만 지정된 매개변수는 다음과 같은 상황에서 사용할 수 있습니다. 함수는 모든 키워드 매개변수를 허용하지만 하나 이상의 알 수 없는 매개변수도 허용할 수 있습니다. 이는 Python 내장 함수의 경우인 경우가 많으므로 프로그래머가 이를 수행하도록 허용하면 Python 언어의 일관성이 향상됩니다.
Python 문서에 제공된 예는 다음과 같습니다.
기호 /는 위치 매개변수와 키워드 매개변수를 구분합니다. 이 예에서는 모든 매개변수가 알 수 없는 매개변수입니다. 이전 버전의 Python에서는 z가 키워드 인수로 간주되었습니다. 그러나 위의 함수 정의를 사용하면 pow(2, 10) 및 pow(2, 10, 5)는 모두 올바른 호출 방법이지만 pow(2, 10, z=5)는 올바르지 않습니다.
3. f-문자열 디버깅 지원
f-문자열 형식을 사용하면 동일한 표현식 내에서 출력 텍스트와 값 또는 변수를 더 쉽게 계산할 수 있으며 더 효율적입니다.
출력 4.
f 문자열 표현식 끝에 =를 추가하지 않고 f 표현식 자체의 값이 출력되고, 이어서 계산된 값이 출력될 수 있습니다.
출력은 x+1=4입니다.
4. 다중 프로세스 공유 메모리
Python 3.8에서 다중 처리 모듈은 서로 다른 Python 프로그램 간에 공유 메모리 영역을 생성할 수 있는 SharedMemory 클래스를 제공합니다.
이전 버전의 Python에서는 프로세스 간에 공유되는 데이터는 파일에 기록하거나, 네트워크 소켓을 통해 전송하거나, Python의 피클 모듈을 사용하여 직렬화하는 것만 가능했습니다. 공유 메모리는 프로세스 간에 데이터를 전송하는 더 빠른 방법을 제공하여 Python의 다중 프로세서 및 다중 코어 프로그래밍을 더욱 효율적으로 만듭니다.
공유 메모리 세그먼트는 간단한 바이트 영역으로 할당되거나 숫자 유형, 문자열, 바이트 객체 및 None 객체와 같은 소수의 Python 객체를 저장할 수 있는 수정 불가능한 목록형 객체로 할당될 수 있습니다.
5. 입력 모듈 개선
Python은 동적으로 입력되는 언어이지만 제3자 도구가 Python 코드를 확인할 수 있도록 입력 모듈을 통해 입력 힌트를 추가할 수 있습니다. Python 3.8은 보다 강력한 검사를 지원할 수 있도록 몇 가지 새로운 요소를 타이핑에 추가합니다.
최종 수정자와 최종 유형 주석은 수정되거나 주석이 달린 객체를 재정의하거나 상속하거나 언제든지 재할당할 수 없음을 나타냅니다. .
리터럴 유형은 표현식을 특정 값 또는 값 목록으로 제한합니다(반드시 동일한 유형의 값일 필요는 없음).
TypedDict는 특정 키의 값이 하나 이상의 유형으로 제한되는 사전을 만드는 데 사용할 수 있습니다. 이러한 제한은 컴파일 타임에 값의 합법성을 결정하는 데에만 사용되며 런타임에는 제한할 수 없습니다.
6. 새로운 버전의 피클 프로토콜
Python의 피클 모듈은 Python 데이터 구조 또는 인스턴스를 직렬화 및 역직렬화하여 나중에 읽을 수 있도록 사전을 그대로 저장하는 방법을 제공합니다. 다양한 Python 버전은 다양한 피클 프로토콜을 지원하며 최신 버전은 더 광범위하고 강력하며 효율적인 직렬화를 지원합니다.
Python 3.8에 도입된 피클 프로토콜의 5번째 버전은 바이트, 메모리 뷰 또는 Numpy 배열 등과 같은 Python의 버퍼 프로토콜을 지원할 수 있는 객체를 피클하는 새로운 방법을 사용할 수 있습니다. 새로운 피클은 이러한 객체를 피클링할 때 많은 메모리 복사 작업을 방지합니다.
NumPy, Apache Arrow 및 기타 외부 라이브러리는 해당 Python 바인딩에서 새로운 피클 프로토콜을 지원합니다. 새로운 피클은 Python 3.6 및 3.7용 플러그인으로도 제공되며, PyPI에서 설치할 수 있습니다.
7. 뒤집을 수 있는 사전
사전은 PyPy 프로젝트에서 제공하는 새로운 구현을 사용하여 Python 3.6으로 다시 작성되었습니다. 더 빠르고 더 간결해지는 것 외에도 이제 사전은 요소의 순서를 상속합니다. 요소는 목록처럼 추가된 순서대로 정렬됩니다. Python 3.8에서는 사전에 reversed()도 허용합니다.
8. 성능 개선
많은 내장 메서드와 함수의 속도가 20%~50% 증가했습니다. 이전에 필요했던 기능 불필요한 매개변수 변환을 수행합니다.
새로운 opcode 캐시는 인터프리터의 특정 명령어 속도를 향상시킵니다. 그러나 현재 달성된 유일한 속도 개선은 40% 더 빠른 LOAD_GLOBAL opcode입니다. 향후 버전에서도 유사한 최적화가 이루어질 예정입니다.
shutil.copyfile() 및 quitil.copytree()와 같은 파일 복사 작업은 이제 플랫폼별 호출 및 기타 최적화를 사용하여 작업 속도를 향상시킵니다.
새로 생성된 목록은 목록 길이가 미리 알려진 경우 목록 생성자가 수행한 최적화 덕분에 이제 이전보다 평균 12% 더 작습니다.
Python 3.8에서는 새로운 유형의 클래스(예: 클래스 A(객체))의 클래스 변수에 대한 쓰기 작업이 더 빨라졌습니다. Operator.itemgetter() 및 collections.namedtuple()도 속도가 최적화되었습니다.
9. Python C API 및 CPython 구현
최신 버전의 Python은 CPython에서 사용됩니다(C 언어로 작성된 Python의 참조 구현). ) C API를 리팩토링하는 데 많은 노력이 기울여졌습니다. 지금까지 이 작업은 계속 추가되고 있으며 기존 결과는 다음과 같습니다.
Python 초기화 구성(Python 초기화 구성) Python 초기화 루틴 제어 등을 더욱 긴밀하게 제어할 수 있는 새로운 C API가 있습니다. 자세한 피드백. 이렇게 하면 Python 런타임을 다른 애플리케이션에 더 쉽게 포함하고 프로그래밍 방식으로 시작 매개변수를 Python 프로그램에 전달할 수 있습니다. 또한 새로운 API는 모든 Python 구성 제어가 일관된 단일 위치를 갖도록 보장하므로 향후 변경(예: Python의 새로운 UTF-8 모드)이 더 쉬워집니다.
CPython의 또 다른 새로운 C API인 "벡터콜" 호출 프로토콜을 사용하면 임시 객체를 생성하지 않고도 Python의 내부 메서드를 더 빠르게 호출할 수 있습니다. API는 여전히 불안정하지만 크게 개선되었습니다. API는 Python 3.9에서 완성될 예정입니다.
Python 런타임 감사 후크는 테스트 프레임워크, 로그, 감사 시스템과 같은 외부 도구가 이벤트를 모니터링할 수 있도록 이벤트를 후크하는 데 사용할 수 있는 Python 런타임용 API 두 개를 제공합니다.
10. Python 3.8을 다운로드하는 방법
Python Software Foundation에서 Python 3.8 베타 버전을 다운로드하세요: https://www.python .org /downloads/release/python-380b1/
위 내용은 한 기사에서 Python 3.8의 새로운 기능에 대해 알아보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!