Կարող եք ձեր կոդը փորձարկել այստեղ
As օպերատորը թույլ է տալիս սահմանել այլանուն կաղապարի արժեքի կամ ամբողջ ձևանմուշի համար: Ամենապարզ օրինակը.
def print_person(person):
match person:
case "Tom" | "Tomas" | "Tommy" as name:
print(f"Name: {name}")
case _:
print("Undefined")
print_person("Tom") # Name: Tom
print_person("Tomas") # Name: Tomas
print_person("Bob") # Undefined
Այստեղ առաջին օրինաչափությունը համապատասխանում է երեք տողերի՝ «Թոմ» | «Տոմաս» | «Թոմի» Արժեքների հավաքածուից հետո գալիս է որպես օպերատորը , որին հաջորդում է մականունը: Եվ անկախ նրանից, թե որ տողը կփոխանցվի, այն կհայտնվի անվան փոփոխականում։ Այլանունը կարող է օգտագործվել մեկ կաղապարի արժեքի կամ ամբողջ ձևանմուշի համար.
def print_person(person):
match person:
case ("Tom" | "Tomas" as name, 37 | 38 as age):
print(f"Tom| Name: {name} Age: {age}")
case ("Bob" | "Robert", 41 | 42) as bob:
print(f"Bob| Name: {bob[0]} Age: {bob[1]}")
case _:
print("Undefined")
print_person(("Tomas", 38)) # Tom| Name: Tomas Age: 38
print_person(("Robert", 41)) # Bob| Name: Robert Age: 41
Սովորաբար, փոխանունները ավելի կիրառելի են որոշ տվյալների կառուցվածքում, որն ավելի բարդ է: Օրինակ:
class Person:
__match_args__ = ("name", "age")
def __init__(self, name, age):
self.name = name
self.age = age
def print_family(family):
match family:
case (Person() as husband, Person() as wife):
print(f"Husband. Name: {husband.name} Age: {husband.age}")
print(f"Wife. Name: {wife.name} Age: {wife.age}")
case _:
print("Undefined")
print_family((Person("Tom", 37), Person("Alice", 33)))
# Husband. Name: Tom Age: 37
# Wife. Name: Alice Age: 33
print_family((Person("Sam", 28), Person("Kate", 25)))
# Husband. Name: Sam Age: 28
# Wife. Name: Kate Age: 25
Այստեղ print_family ֆունկցիան ընդունում է բազմակի, որը պետք է բաղկացած լինի երկու Անձի տարրերից։ Առաջին կաղապարում առաջին տարրի համար մենք սահմանում ենք alias ամուսինը, իսկ երկրորդի համար՝ կինը: Այնուհետև մենք կարող ենք մուտք գործել դրանց ատրիբուտներ՝ օգտագործելով այս անունները:
Մեկնաբանություն գրելու համար խնդրում ենք մուտք լինել