Guido van Rossum
Utekelezaji mpya ni kama opereta wa "mechi" iliyotolewa katika Scala, Rust, na F#, ambayo inalinganisha matokeo ya usemi maalum na orodha ya ruwaza zilizoorodheshwa kwenye vizuizi kulingana na opereta "kesi". Tofauti na opereta "switch" inayopatikana katika C, Java, na JavaScript, misemo ya "linganisha" hutoa mengi zaidi.
def http_error(hadhi):
hali ya mechi:
kesi 400:
kurudi "Ombi mbaya"
kesi 401|403|404:
kurudi "Hairuhusiwi"
kesi 418:
kurudi "mimi ni buli"
kesi_:
kurudi "Kitu kingine"
Kwa mfano, unaweza kufungua vipengee, nakala, orodha, na mfuatano wa kiholela ili kuunganisha vigeu kulingana na thamani zilizopo. Inaruhusiwa kufafanua violezo vilivyowekwa, kutumia masharti ya ziada ya “ikiwa” kwenye kiolezo, tumia vinyago (“[x, y, *rest]”), upangaji wa vitufe/thamani (kwa mfano, {“bandwidth”: b, “latency ”: l} kutoa thamani za "bandwidth" na "latency" na kamusi), toa violezo vidogo (":=" mwendeshaji), tumia viunga vilivyotajwa kwenye kiolezo. Katika madarasa, inawezekana kubinafsisha tabia inayolingana kwa kutumia mbinu ya "__match__()".
kutoka kwa darasa la kuhifadhi data
@darasa la data
Pointi ya darasa:
x: in
y: in
def whereis(point):
pointi ya mechi:
Sehemu ya kesi (0, 0):
chapa ("Asili")
Sehemu ya kesi (0, y):
chapa(f"Y={y}")
Kesi Point(x, 0):
chapa(f"X={x}")
kesi Point():
chapa ("Mahali pengine")
kesi_:
chapa ("Sio uhakika")
pointi ya mechi:
kesi Point(x, y) ikiwa x == y:
print(f"Y=X kwa {x}")
Kesi Point(x, y):
print(f"Sio kwenye diagonal")
NYEKUNDU, KIJANI, BLUU = 0, 1, 2
rangi ya mechi:
kesi .RED:
chapa ("Naona nyekundu!")
kipochi .KIJANI:
chapa ("Nyasi ni kijani")
kesi .BLU
E:
chapa (“Ninahisi hali ya sintofahamu :(“)
Seti imetayarishwa kwa ukaguzi
Chanzo: opennet.ru