Гидо ван Россум
Шинэ хэрэгжүүлэлт нь Scala, Rust, F# дээр өгөгдсөн "match" оператортой маш төстэй бөгөөд заасан илэрхийллийн үр дүнг "case" оператор дээр үндэслэн блокуудад жагсаасан загваруудын жагсаалттай харьцуулдаг. C, Java болон JavaScript-д байдаг "шилжүүлэх" оператороос ялгаатай нь "тохирох"-д суурилсан илэрхийллүүд нь илүү их зүйлийг санал болгодог.
def http_error(статус):
тохирох байдал:
хэрэг 400:
"Муу хүсэлт"-ийг буцаах
тохиолдол 401|403|404:
"Зөвшөөрөгдөөгүй" гэж буцаах
хэрэг 418:
"Би цайны аяга" гэж буцах
тохиолдол_:
"Өөр зүйл" гэж буцаах
Жишээлбэл, та одоо байгаа утгууд дээр тулгуурлан хувьсагчдыг холбохын тулд объект, залгуур, жагсаалт, дурын дарааллыг задалж болно. Оруулсан загваруудыг тодорхойлох, загварт нэмэлт "хэрэв" нөхцөлийг ашиглах, маск ("[x, y, *rest]"), түлхүүр/утгын зураглал (жишээ нь, {"зурвасын өргөн": b, "хоцролт" зэргийг ашиглахыг зөвшөөрнө. ”: l} "зурвасын өргөн" болон "хоцролт" утгууд болон толь бичгийг задлах), дэд загваруудыг задлах (":=" оператор), загварт нэрлэгдсэн тогтмолуудыг ашиглах. Хичээл дээр "__match__()" аргыг ашиглан тохирох зан төлөвийг өөрчлөх боломжтой.
өгөгдлийн ангиас импортын дата анги
@өгөгдлийн анги
ангийн оноо:
x:int
y:int
def whereis(цэг):
хожлын оноо:
case Point(0, 0):
хэвлэх("Гарал үүсэл")
case Point(0, y):
хэвлэх(f"Y={y}")
case Point(x, 0):
хэвлэх(f"X={x}")
case Point():
хэвлэх("Өөр газар")
тохиолдол_:
хэвлэх("Цэг биш")
хожлын оноо:
case Point(x, y) хэрэв x == y:
хэвлэх(f"Y=X {x}")
тохиолдол Цэг(x, y):
хэвлэх(f"Диагональ дээр биш")
УЛААН, НОГООН, ЦЭНХЭР = 0, 1, 2
тохирох өнгө:
тохиолдол .RED:
хэвлэх("Би улаан харагдаж байна!")
тохиолдол .НОГООН:
хэвлэх("Өвс ногоон")
тохиолдол .BLU
E:
хэвлэх("Надад блюз мэдрэгдэж байна :(")
Шалгалтанд зориулж багц бэлдсэн
Эх сурвалж: opennet.ru