What's New In Python 3.8

(예시 - if문)

if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

(예시 - list comprehension)

[clean_name.title() for name in names
 if (clean_name := normalize('NFC', name)) in allowed_names]

PEP 572

During discussion of this PEP, the operator became informally known as the walrus operator. The construct’s formal name is Assignment Expressions (as per the PEP title), but they may also be referred to as Named Expressions (e.g. the CPython reference implementation uses that name internally).

기타

Expression vs. Statement

코드 단위인 Expression과 Statement의 차이를 알아보자

Expression

Expression은 ‘수식’이라는 뜻으로 하나 이상의 값으로 표현(reduce)될 수 있는 코드를 말한다.

Expression은 그 모양과 형태는 다 다를지언정 하나의 단일 값으로 평가될 수 있다.

파이썬의 eval 함수는 str 형태의 expression을 인자로 받아 평가해 그 값을 반환하는 함수이다.

2 + 3
'a'
'ab' + 'c'

Statement

statement는 ‘진술’, ‘서술’의 의미로 프로그래밍에서는 실행가능한(executable) 최소의 독립적인 코드 조각을 일컫는다.