ساختار match-case در پایتون
ساختار match-case در نسخه 3.10 پایتون معرفی شد و به عنوان شکل توسعهیافتهتری از شرطهای if-elif-else عمل میکند. این ساختار شبیه به switch-case در زبانهای دیگر مانند C یا Java است، اما با قابلیتهای بسیار پیشرفتهتر که به آن «تطبیق ساختاری» یا Structural Pattern Matching گفته میشود.
مثال ساده:
status = 404
match status:
case 200:
print("Success")
case 404:
print("Not Found")
case 500:
print("Server Error")
case _:
print("Unknown")
تفاوت با if:
- کد
match-caseخواناتر و مرتبتر ازif-elif-elseاست، بهخصوص زمانی که چندین مقدار مختلف باید بررسی شوند. - در
match-caseمیتوان ساختارهای پیچیدهتری مانند لیست، دیکشنری یا آبجکت را نیز تطبیق داد. - در
matchمیتوان از الگوهایی مانند باز کردن لیست، بررسی نوع، بررسی مقادیر تو در تو و حتی اتصال متغیر در الگو استفاده کرد.
مثال تطبیق ساختاری پیچیده:
user = {"type": "admin", "name": "Sara"}
match user:
case {"type": "admin", "name": name}:
print(f"Admin user: {name}")
case {"type": "guest", "name": name}:
print(f"Guest user: {name}")
case _:
print("Unknown user")
نکته: ساختار match-case فقط در پایتون 3.10 و بالاتر قابل استفاده است و در نسخههای پایینتر باعث خطا خواهد شد.
کاربر جدید 3584
28 , مهر , 1404 - 14:10 بعد از ظهرعاقلانه است در نرم افزار هامون ازش استفاده کنیم؟ اونم وقتی تازه ارائه شده؟
علی بیگدلی
28 , مهر , 1404 - 16:48 بعد از ظهراین تازه ای که میگید از نسخه 3.10 بوده الان نسخه 3.14 هستیم پس عملا جا افتاده و همونطور که walrus و خیلی چیزای دیگه تعریف شدن همین الانم قابل استفادس