Guido van Rossum
De nije ymplemintaasje is in protte as de "wedstriid" operator foarsjoen yn Scala, Rust, en F #, dy't fergeliket it resultaat fan in spesifisearre útdrukking mei in list fan patroanen neamd yn blokken basearre op de "case" operator. Oars as de "switch"-operator beskikber yn C, Java en JavaScript, biede "match"-basearre útdrukkingen folle mear
def http_error(status):
wedstriid status:
saak 400:
werom "Min fersyk"
saak 401|403|404:
werom "Net tastien"
saak 418:
werom "Ik bin in teepot"
rjochtsaak_:
werom "Eat oars"
Jo kinne bygelyks objekten, tuples, listen en willekeurige sekwinsjes útpakke om fariabelen te binen basearre op besteande wearden. It is tastien om geneste sjabloanen te definiearjen, ekstra "as"-betingsten yn 'e sjabloan te brûken, maskers brûke ("[x, y, *rest]"), kaai-/wearde-mappings (bygelyks {"bânbreedte": b, "latency" ”: l} om "bânbreedte" en "latency" wearden en wurdboek te ekstrahearjen), subsjabloanen ekstrahearje (":=" operator), brûke neamde konstanten yn sjabloan. Yn klassen is it mooglik om oerienkommende gedrach oan te passen mei de metoade "__match__ ()".
fan dataklassen ymportearje dataklasse
@dataklasse
klasse punt:
x: ynt
y: ynt
def whereis (punt):
wedstriidpunt:
gefal Punt (0, 0):
print ("Oarsprong")
gefal Punt (0, y):
print(f"Y={y}")
gefal Punt (x, 0):
print(f"X={x}")
saakpunt():
print("Ergens anders")
rjochtsaak_:
print ("Gjin punt")
wedstriidpunt:
gefal Punt (x, y) as x == y:
print(f"Y=X at {x}")
gefal Punt (x, y):
print(f"Net op de diagonaal")
RED, GREEN, BLAUW = 0, 1, 2
oerien mei kleur:
gefal .RED:
print ("Ik sjoch read!")
gefal .GREEN:
print ("Gêrs is grien")
gefal .BLU
E:
print(“I'm feeling the blues:(“)
In set is taret foar beoardieling
Boarne: opennet.ru