> 백엔드 개발 > 파이썬 튜토리얼 > 한 기사에서 Python 3.8의 새로운 기능에 대해 알아보세요.

한 기사에서 Python 3.8의 새로운 기능에 대해 알아보세요.

爱喝马黛茶的安东尼
풀어 주다: 2019-08-19 17:58:52
앞으로
3511명이 탐색했습니다.

한 기사에서 Python 3.8의 새로운 기능에 대해 알아보세요.

Python 3.8은 Python 언어의 최신 버전으로 스크립팅, 자동화, 머신러닝, 웹 개발 등 다양한 작업에 적합합니다. 이제 Python 3.8이 공식 베타 단계에 진입했으므로 이 버전은 많은 구문 변경, 메모리 공유, 보다 효율적인 직렬화 및 역직렬화, 향상된 사전 및 더 많은 새로운 기능을 제공합니다.

Python 3.8에서는 성능도 많이 향상되었습니다. 전반적으로 우리는 더 빠르고, 더 정확하고, 더 일관되고, 더 현대적인 Python을 갖게 될 것입니다. 다음은 Python 3.8의 새로운 기능과 가장 중요한 변경 사항입니다.

1. 할당 표현식

Python 3.8에서 가장 눈에 띄는 변화는 할당 표현식, 즉 := 연산자입니다. 할당 표현식은 변수가 존재하지 않는 경우에도 변수에 값을 할당할 수 있습니다. 별도의 문장으로 나타나지 않고 표현식에 사용될 수 있습니다.

한 기사에서 Python 3.8의 새로운 기능에 대해 알아보세요.

위의 예에서는 line이라는 변수가 존재하지 않으면 생성되고, file.readline()의 반환값이 할당됩니다. 그런 다음 줄이 "끝"인지 확인하십시오. 그렇지 않은 경우 다음 줄을 읽고 해당 줄에 저장한 후 테스트를 계속하세요.

할당 표현식은 목록 이해와 마찬가지로 Python의 단순성 전통을 따릅니다. 그 목적은 특정 Python 프로그래밍 모델에서 지루한 상용구 코드를 피하는 것입니다. 예를 들어, 위의 코드를 일반적인 방법으로 작성하려면 두 줄의 코드가 더 필요합니다.

관련 권장사항: "Python 비디오 튜토리얼"

2. 위치로만 지정되는 매개변수

위치로만 지정되는 매개변수는 프로그래머가 특정 매개변수를 강제로 지정할 수 있도록 하는 함수 정의의 새로운 구문입니다. 위치별로. 이는 어떤 매개변수가 위치 매개변수이고 어떤 매개변수가 키워드 매개변수인지에 대한 Python 함수 정의의 모호성을 해결합니다.

위치로만 지정된 매개변수는 다음과 같은 상황에서 사용할 수 있습니다. 함수는 모든 키워드 매개변수를 허용하지만 하나 이상의 알 수 없는 매개변수도 허용할 수 있습니다. 이는 Python 내장 함수의 경우인 경우가 많으므로 프로그래머가 이를 수행하도록 허용하면 Python 언어의 일관성이 향상됩니다.

Python 문서에 제공된 예는 다음과 같습니다.

한 기사에서 Python 3.8의 새로운 기능에 대해 알아보세요.

기호 /는 위치 매개변수와 키워드 매개변수를 구분합니다. 이 예에서는 모든 매개변수가 알 수 없는 매개변수입니다. 이전 버전의 Python에서는 z가 키워드 인수로 간주되었습니다. 그러나 위의 함수 정의를 사용하면 pow(2, 10) 및 pow(2, 10, 5)는 모두 올바른 호출 방법이지만 pow(2, 10, z=5)는 올바르지 않습니다.

3. f-문자열 디버깅 지원

f-문자열 형식을 사용하면 동일한 표현식 내에서 출력 텍스트와 값 또는 변수를 더 쉽게 계산할 수 있으며 더 효율적입니다.

한 기사에서 Python 3.8의 새로운 기능에 대해 알아보세요.

출력 4.

f 문자열 표현식 끝에 =를 추가하지 않고 f 표현식 자체의 값이 출력되고, 이어서 계산된 값이 출력될 수 있습니다.

한 기사에서 Python 3.8의 새로운 기능에 대해 알아보세요.

출력은 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:jianshu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿