Python 3.9의 새로운 기능
최신 Python 버전에 포함 된 최고의 기능 살펴보기
다시 한 번 새로운 버전의 Python이 임박했습니다. 이제 베타 버전 (3.9.0b3)에서 곧 Python 3.9의 전체 릴리스를 볼 수 있습니다.
최신 기능 중 일부는 매우 흥미롭고 출시 후 사용되는 것을 보면 놀라 울 것입니다. 다음 내용을 다룹니다.
- 사전 통합 연산자
- 유형 힌트
- 두 가지 새로운 문자열 메서드
- 새로운 파이썬 파서— 이것은 매우 멋지다
이러한 새로운 기능과 사용 방법을 먼저 살펴 보겠습니다.
(이탈리아어 버전)
사전 연합
세련된 구문으로 내가 가장 좋아하는 새로운 기능 중 하나입니다. 두 개의 사전이있는 경우ㅏ
과비
병합해야하므로 이제조합원.
우리는병합운영자|
:
a = {1: 'a', 2: 'b', 3: 'c'}
b = {4: 'd', 5: 'e'}c = a | b
print(c)
[밖]:{1 : 'a', 2 : 'b', 3 : 'c', 4 : 'd', 5 : 'e'}
그리고최신 정보운영자| =
, 원본 사전을 업데이트합니다.
a = {1: 'a', 2: 'b', 3: 'c'}
b = {4: 'd', 5: 'e'}a |= b
print(a)
[밖]:{1 : 'a', 2 : 'b', 3 : 'c', 4 : 'd', 5 : 'e'}
우리 사전이공통 키, 두 번째 사전의 키-값 쌍이 사용됩니다.
a = {1: 'a', 2: 'b', 3: 'c', 6: 'in both'}
b = {4: 'd', 5: 'e', 6: 'but different'}print(a | b)
[밖]:{1 : 'a', 2 : 'b', 3 : 'c',6 : '하지만 다르다', 4 : 'd', 5 : 'e'}
Iterables로 사전 업데이트
의 또 다른 멋진 동작| =
운영자는 능력입니다최신 정보새로운 키-값 쌍이있는 사전반복 가능객체 — 목록 또는 생성기와 같은 :
a = {'a': 'one', 'b': 'two'}
b = ((i, i**2) for i in range(3))a |= b
print(a)
[밖]:{ 'a': 'one', 'b': 'two',0 : 0, 1 : 1, 2 : 4}
표준 유니온 연산자로 동일하게 시도하면|
우리는 얻을 것이다TypeError
그것은 사이의 결합 만 허용하기 때문에dict
유형.
유형 힌트
Python은 동적으로 입력되므로 코드에서 데이터 유형을 지정할 필요가 없습니다.
이것은 괜찮지 만 때로는 혼란 스러울 수 있으며 갑자기 Python의 유연성이 다른 무엇보다 성가신 문제가됩니다.
3.5부터 유형을 지정할 수 있었지만 꽤 번거 롭습니다. 이 업데이트는 진정으로 변경되었습니다. 예를 들어 보겠습니다.
우리의add_int
함수, 우리는 분명히 같은 숫자를 자체에 추가하고 싶습니다 (정의되지 않은 신비한 이유 때문에). 하지만 저희 에디터는 그것을 모르고 있습니다.+
— 따라서 경고가 제공되지 않습니다.
이제 우리가 할 수있는 것은 예상되는 입력 유형을 다음과 같이 지정하는 것입니다.int
. 이를 사용하여 편집자는 즉시 문제를 파악합니다.
포함 된 유형에 대해서도 매우 구체적으로 알 수 있습니다. 예를 들면 다음과 같습니다.
유형 힌트는 모든 곳에서 사용할 수 있으며 새로운 구문 덕분에 이제 훨씬 깔끔해 보입니다.
문자열 방법
다른 새로운 기능만큼 화려하지는 않지만 특히 유용하므로 언급 할 가치가 있습니다. 접두사 및 접미사를 제거하기위한 두 가지 새로운 문자열 메서드가 추가되었습니다.
"Hello world".removeprefix("He")
[밖]:"llo 세계"
Hello world".removesuffix("ld")
[밖]:"안녕하세요 세상"
새 파서
이것은 보이지 않는 변화에 가깝지만 Python의 미래 진화에 가장 중요한 변화 중 하나가 될 가능성이 있습니다.
파이썬은 현재 주로 LL (1) 기반 문법을 사용하는데, 이는 LL (1) 파서에 의해 파싱 될 수 있습니다.이 문법은 코드를 위에서 아래로, 왼쪽에서 오른쪽으로, 단 하나의 토큰으로 미리보기로 파싱합니다.
자, 저는 이것이 어떻게 작동하는지 거의 알지 못합니다.하지만이 방법을 사용하기 때문에 파이썬에서 현재 몇 가지 문제를 알려 드릴 수 있습니다.
- 파이썬은 비 LL (1) 문법을 포함합니다; 이로 인해 현재 문법의 일부는 해결 방법을 사용하여 불필요한 복잡성을 만듭니다.
- LL (1)은 Python 구문에 제한을 만듭니다 (가능한 해결 방법 없음).이번 호다음 코드는 현재 파서를 사용하여 구현할 수 없음을 강조합니다.SyntaxError) :
with (open("a_really_long_foo") as foo,
open("a_really_long_bar") as bar):
pass
이러한 모든 요소 (그리고 단순히 이해할 수없는 더 많은 요소)는 Python에 큰 영향을줍니다. 그들은 언어의 진화를 제한합니다.
다음을 기반으로하는 새로운 파서못,Python 개발자에게 훨씬 더 많은 유연성을 제공 할 것입니다.Python 3.10 이상.
이것이 곧 출시 될 Python 3.9에서 기대할 수있는 모든 것입니다. 정말 기다릴 수 없다면 최신 베타 릴리스 인 3.9.0b3여기에서 사용할 수 있습니다.
질문이나 제안이 있으시면 언제든지트위터또는 아래 의견에.
읽어 주셔서 감사합니다!
이 기사를 즐겼고 Python의 잘 알려지지 않은 기능에 대해 더 알고 싶다면 이전 기사에 관심이있을 것입니다.
'Data Analytics(ko)' 카테고리의 다른 글
You are telling people that you are a Python beginner if you ask this question. -번역 (0) | 2020.10.07 |
---|---|
Scikit-Learn (Python): 6 Useful Tricks for Data Scientists -번역 (0) | 2020.10.06 |
No More Basic Plots Please -번역 (0) | 2020.10.05 |
The Definitive Data Scientist Environment Setup -번역 (0) | 2020.10.03 |
Extracting Data from PDF File Using Python and R -번역 (0) | 2020.10.02 |