海象操作符 - :=

通过海象操作符来精简代码

count = f1()
if count:
    print(count)
else:
	f2()

上述代码的简化:

if count := f1():
	print(count)
else:
	f2()

通过海象操作符来精简代码

count = f1()
if count > 4:
    print(count)
else:
	f2()

上述代码的简化:

if (count := f1()) > 4:
	print(count)
else:
	f2()

通过海象操作符实现 switch/case

count = f1()
if count > 2:
	a = f2(count)
	b = f3(a)
else:
	count = f1('a')
	if count > 4:
		b = f3(count)
	else:
		count = f1('c')
		if count:
			b = f4(count)
		else:
			b = 'n'

上述代码的简化:

if (count := f1()) > 2:
	a = f2(count)
	b = f3(a)
elif (count := f1('a')) > 4:
	b = f3(count)
elif count := f1('c'):
	b = f4(count)
else:
	b = 'n'

通过海象操作符简化 while 循环

a = f()
while a:
	b = f1()
	a = f()

上述代码的简化:

while a := f():
	b = f1()

在推导式中简化

has_bug = {name: get_batches(stock.get(name,0),8)
			for name in order
			if get_batches(stock.get(name,0),8)}
found = {name: batches for name in order
		if (batches :=get_batches(stock.get(name,0),8))}