Guido van Rossum ื”ืฆื™ืข ืœื”ื•ืกื™ืฃ ืื•ืคืจื˜ื•ืจื™ื ืฉืœ ื”ืชืืžืช ื“ืคื•ืกื™ื ืœืคื™ื™ืชื•ืŸ

ื’ื™ื“ื• ื•ืืŸ ืจื•ืกื•ื ื”ื’ื™ืฉื• ื˜ื™ื•ื˜ื” ืœื‘ื“ื™ืงืช ื”ืงื”ื™ืœื” ืžืคืจื˜ื™ื ืœื”ื˜ืžืขืช ืื•ืคืจื˜ื•ืจื™ื ืฉืœ ื”ืชืืžืช ื“ืคื•ืกื™ื (ื”ืชืืžื” ื•ืžืงืจื”) ื‘-Python. ื™ืฉ ืœืฆื™ื™ืŸ ืฉื”ืฆืขื•ืช ืœื”ื•ืกืคืช ืื•ืคืจื˜ื•ืจื™ื ืฉืœ ื”ืชืืžืช ื“ืคื•ืกื™ื ื›ื‘ืจ ืคื•ืจืกืžื• ื‘ืฉื ื™ื 2001 ื•-2006 (ืคืค-0275, ืคืค-3103), ืืš ื ื“ื—ื• ืœื˜ื•ื‘ืช ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื”ืžื‘ื ื” "ืื ... elif ... else" ืœื”ื™ื“ื•ืจ ืฉืจืฉืจืื•ืช ืชื•ืืžื•ืช.

ื”ื™ื™ืฉื•ื ื”ื—ื“ืฉ ื“ื•ืžื” ืžืื•ื“ ืœืื•ืคืจื˜ื•ืจ "ื”ืชืืžื”" ื”ืžืกื•ืคืง ื‘-Scala, Rust ื•-F#, ืืฉืจ ืžืฉื•ื•ื” ืืช ื”ืชื•ืฆืื” ืฉืœ ื‘ื™ื˜ื•ื™ ืฉืฆื•ื™ืŸ ืขื ืจืฉื™ืžื” ืฉืœ ื“ืคื•ืกื™ื ื”ืจืฉื•ืžื™ื ื‘ื‘ืœื•ืงื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ ื”ืื•ืคืจื˜ื•ืจ "case". ื‘ื ื™ื’ื•ื“ ืœืื•ืคืจื˜ื•ืจ "switch" ื”ื–ืžื™ืŸ ื‘-C, Java ื•-JavaScript, ื‘ื™ื˜ื•ื™ื™ื ืžื‘ื•ืกืกื™ "ื”ืชืืžื”" ืžืฆื™ืขื™ื ื”ืจื‘ื” ื™ื•ืชืจ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืจื—ื‘ื”. ื™ืฆื•ื™ืŸ ื›ื™ ื”ืื•ืคืจื˜ื•ืจื™ื ื”ืžื•ืฆืขื™ื ื™ืฉืคืจื• ืืช ืงืจื™ืื•ืช ื”ืงื•ื“, ื™ืคืฉื˜ื• ืืช ื”ื”ืฉื•ื•ืื” ืฉืœ ืื•ื‘ื™ื™ืงื˜ื™ Python ืฉืจื™ืจื•ืชื™ื™ื ื•ืื™ืชื•ืจ ื‘ืื’ื™ื, ื•ื›ืŸ ื™ื’ื‘ื™ืจื• ืืช ืืžื™ื ื•ืช ื”ืงื•ื“ ื”ื•ื“ื•ืช ืœืืคืฉืจื•ืช ื”ืจื—ื‘ื” ื‘ื“ื™ืงืช ืกื•ื’ ืกื˜ื˜ื™.

def http_error(ืกื˜ื˜ื•ืก):
ืกื˜ื˜ื•ืก ื”ืชืืžื”:
ืžืงืจื” 400:
ื”ื—ื–ืจ "ื‘ืงืฉื” ื’ืจื•ืขื”"
ืžืงืจื” 401|403|404:
ื”ื—ื–ืจ "ืืกื•ืจ"
ืžืงืจื” 418:
ื—ื–ืจื” "ืื ื™ ืงื•ืžืงื•ื ืชื”"
ืžืงืจื”_:
ื”ื—ื–ืจ "ืžืฉื”ื• ืื—ืจ"

ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœืคืจื•ืง ืื•ื‘ื™ื™ืงื˜ื™ื, ื˜ื•ืคืœื™ื, ืจืฉื™ืžื•ืช ื•ืจืฆืคื™ื ืฉืจื™ืจื•ืชื™ื™ื ื›ื“ื™ ืœืื’ื“ ืžืฉืชื ื™ื ืขืœ ืกืžืš ืขืจื›ื™ื ืงื™ื™ืžื™ื. ืžื•ืชืจ ืœื”ื’ื“ื™ืจ ืชื‘ื ื™ื•ืช ืžืงื•ื ื ื•ืช, ืœื”ืฉืชืžืฉ ื‘ืชื ืื™ "ืื" ื ื•ืกืคื™ื ื‘ืชื‘ื ื™ืช, ืœื”ืฉืชืžืฉ ื‘ืžืกื›ื•ืช ("[x, y, *rest]"), ืžื™ืคื•ื™ ืžืคืชื—/ืขืจืš (ืœื“ื•ื’ืžื”, {"ืจื•ื—ื‘ ืคืก": b, "ืฉื”ื™ื™ื” โ€: l} ื›ื“ื™ ืœื—ืœืฅ ืขืจื›ื™ "ืจื•ื—ื‘ ืคืก" ื•-"ื—ื‘ื™ื•ืŸ" ื•ืžื™ืœื•ืŸ), ืœื—ืœืฅ ืชื‘ื ื™ื•ืช ืžืฉื ื” (":=" ืื•ืคืจื˜ื•ืจ), ื”ืฉืชืžืฉ ื‘ืงื‘ื•ืขื™ื ื‘ืขืœื™ ืฉื ื‘ืชื‘ื ื™ืช. ื‘ืžื—ืœืงื•ืช, ื ื™ืชืŸ ืœื”ืชืื™ื ืื™ืฉื™ืช ืืช ื”ืชื ื”ื’ื•ืช ื”ื”ืชืืžื” ื‘ืืžืฆืขื•ืช ืฉื™ื˜ืช "__match__()".

ืž-dataclasses ื™ื™ื‘ื•ื โ€‹โ€‹dataclass

@dataclass
ื ืงื•ื“ืช ืžื—ืœืงื”:
x:int
y:int

def whereis (ื ืงื•ื“ื”):
ื ืงื•ื“ืช ืฉื•ื•ื™ื•ืŸ:
ื ืงื•ื“ืช ืžืงืจื” (0, 0):
print ("ืžืงื•ืจ")
ื ืงื•ื“ืช ืžืงืจื” (0, y):
print(f"Y={y}")
ื ืงื•ื“ืช ืžืงืจื” (x, 0):
print(f"X={x}")
ื ืงื•ื“ืช ืžืงืจื”():
print("ืžืงื•ื ืื—ืจ")
ืžืงืจื”_:
print("ืœื ื ืงื•ื“ื”")

ื ืงื•ื“ืช ืฉื•ื•ื™ื•ืŸ:
ื ืงื•ื“ืช ืžืงืจื” (x, y) ืื x == y:
print(f"Y=X ื‘-{x}")
ื ืงื•ื“ืช ืžืงืจื” (x, y):
print(f"ืœื ื‘ืืœื›ืกื•ืŸ")

ืื“ื•ื, ื™ืจื•ืง, ื›ื—ื•ืœ = 0, 1, 2
ืฆื‘ืข ืชื•ืื:
ืžืงืจื” .RED:
print("ืื ื™ ืจื•ืื” ืื“ื•ื!")
ืžืงืจื” .GREEN:
print("ื“ืฉื ื™ืจื•ืง")
ืžืงืจื” .BLU
E:
print(โ€œืื ื™ ืžืจื’ื™ืฉ ืืช ื”ื‘ืœื•ื– :(โ€œ)

ืขืจื›ื” ื”ื•ื›ื ื” ืœื‘ื“ื™ืงื” ื˜ืœืื™ื ืขื ื ื™ืกื™ื•ื ื™ ื™ื™ืฉื•ื ื”ืžืคืจื˜ ื”ืžื•ืฆืข, ืื‘ืœ ื”ื’ืจืกื” ื”ืกื•ืคื™ืช ืขื“ื™ื™ืŸ ืžื“ื•ื‘ืจ. ืœื“ื•ื’ืžื”, ืžื•ืฆืข ื‘ืžืงื•ื ื”ื‘ื™ื˜ื•ื™ "case _:" ืขื‘ื•ืจ ืขืจืš ื‘ืจื™ืจืช ื”ืžื—ื“ืœ, ื”ืฉืชืžืฉ ื‘ืžื™ืœืช ื”ืžืคืชื— "else:" ืื• "default:", ืฉื›ืŸ "_" ื‘ื”ืงืฉืจื™ื ืื—ืจื™ื ืžืฉืžืฉ ื›ืžืฉืชื ื” ื–ืžื ื™. ืžื•ื˜ืœืช ื‘ืกืคืง ื’ื ื”ืืจื’ื•ืŸ ื”ืคื ื™ืžื™, ืฉืžื‘ื•ืกืก ืขืœ ืชืจื’ื•ื ื‘ื™ื˜ื•ื™ื™ื ื—ื“ืฉื™ื ืœืงื•ื“ ื‘ืชื™ื ื‘ื“ื•ืžื” ืœื–ื” ื”ืžืฉืžืฉ ืœืžื‘ื ื™ "ืื ... elif ... else", ืืฉืจ ืœื ื™ืกืคืงื• ืืช ื”ื‘ื™ืฆื•ืขื™ื ื”ืจืฆื•ื™ื™ื ื‘ืขืช ืขื™ื‘ื•ื“ ืงื‘ื•ืฆื•ืช ื’ื“ื•ืœื•ืช ืžืื•ื“ ืฉืœ ื”ืฉื•ื•ืื•ืช.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”