(예시 - 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]
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).
{X: Y for ...}
, Y
is currently evaluated before X
. We propose to change this so that X
is evaluated before Y
. (In a dict display like {X: Y}
this is already the case, and also in dict((X, Y) for ...)
which should clearly be equivalent to the dict comprehension.)코드 단위인 Expression과 Statement의 차이를 알아보자
Expression은 ‘수식’이라는 뜻으로 하나 이상의 값으로 표현(reduce)될 수 있는 코드를 말한다.
Expression은 그 모양과 형태는 다 다를지언정 하나의 단일 값으로 평가될 수 있다.
파이썬의 eval
함수는 str 형태의 expression을 인자로 받아 평가해 그 값을 반환하는 함수이다.
2 + 3
'a'
'ab' + 'c'
statement는 ‘진술’, ‘서술’의 의미로 프로그래밍에서는 실행가능한(executable) 최소의 독립적인 코드 조각을 일컫는다.