python3.8 海象表达式 :=

粘过来的。。。

海象表达式 :=

新的语法 := 将给变量赋值, 这个变量是更大的表达式的一部分.

str1 = 'sdfghjkl'
if (ln:= len(str1)) > 0:
    print(ln)

用在 if 判断中, 避免调用 len() 两次.

discount = 0.0
if (mo := re.search(r'(\d+)% discount', advertisement)):
  discount = float(mo.group(1)) / 100.0

正则表达式匹配和获取结果的时候.

# Loop over fixed length blocks
while (block := f.read(256)) != '':
  process(block)

用在 while 循环中, 可以同时取值, 并判断是否为空.

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

你可能感兴趣的:(python3.8,海象表达式,:=)