[Python] 버전 별 새로운 기능
in Python
Python 3.6
Formatted string literals (PEP 498)
f-string 문법 추가
>>> name = "Fred"
>>> f"He said his name is {name}"
'He said his name is Fred'
Underscores in Numeric Literals (PEP 515)
긴 숫자 리터럴에 언더스코어를 넣어서 가독성을 높임
>>> 1_000_000_000_000_000
1000000000000000
Python 3.7
asyncio
모듈 run()
메서드
loop = asyncio.get_event_loop()
loop.run_until_complete(do_async())
loop.close()
한 줄로 간단히 비동기 함수 호출
asyncio.run(do_async())
breakpoint()
함수 (PEP 553)
breakpoint()
는 먼저pdb
를 임포터하고pub.set_trace()
를 호출함breakpoint()
를 만나면 실행이 중단되고 pdb 디버깅 세션에 진입
def divide(e, f):
breakpoint()
return f / e
Python 3.8
Walrus Operator 바다코끼리 (PEP 572)
표현식에 이름을 부여하고 재사용 가능
3.7 이하에서는
a = [1, 2, 3, 4]
n = len(a)
if n > 5:
print(f"List is too long {n} elements")
3.8 부터는 아래와 같이 n을 조건문 안에서 선언하고 값을 대입할 수 있음
a = [1, 2, 3, 4]
if (n := len(a)) > 5:
print(f"List is too long {n} elements")