پرسش

جایگزین‌های دستور switch در پایتون

Replacements for switch statement in Python

من دنبال راه‌هایی برای جایگزینی دستور switch در پایتون می‌گردم. چه روش‌هایی وجود دارد که بتوانم عملکرد مشابهی را پیاده‌سازی کنم؟

1403/06/02
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

برای دستیابی به عملکرد مشابه می‌تونید از روش‌های زیر استفاده کنید:

  1. استفاده از دیکشنری‌ها:

یکی از رایج‌ترین و ساده‌ترین روش‌ها برای شبیه‌سازی switch در پایتون، استفاده از دیکشنری‌ها است. در این روش، کلیدها به عنوان مقادیر ورودی (case) و مقادیر دیکشنری به عنوان توابع یا مقادیر خروجی تعریف می‌شوند. مثال زیر نشان می‌دهد که چطور می‌توانید از دیکشنری برای این کار استفاده کنید:

def handle_case_one():
     return "This is case one."
def handle_case_two():
    return "This is case two."
def handle_case_default():
    return "This is the default case."
switch_dict = {
       1: handle_case_one,
       2: handle_case_two
   }
def switch(case):
     return switch_dict.get(case, handle_case_default)()
print(switch(1))  # Output: This is case one.
print(switch(3))  # Output: This is the default case.
  1. استفاده از if-elif-else:

روش دیگر برای شبیه‌سازی switch استفاده از دستورات if-elif-else است. این روش زمانی مناسب است که تعداد حالات محدود و مشخصی داشته باشید.

def switch(case):
    if case == 1:
        return "This is case one."
    elif case == 2:
        return "This is case two."
    else:
        return "This is the default case."
print(switch(1))  # Output: This is case one.
print(switch(3))  # Output: This is the default case.
  1. استفاده از کلاس‌ها و دیکشنری‌های داخلی:

اگر نیاز دارید که حالات پیچیده‌تری را مدیریت کنید، می‌توانید از کلاس‌ها و دیکشنری‌های داخلی استفاده کنید.

class Switch:
    def __init__(self):
        self.cases = {
            1: self.case_one,
            2: self.case_two
           }
    def case_one(self):
        return "This is case one."
    def case_two(self):
        return "This is case two."
    def default(self):
        return "This is the default case."
    def switch(self, case):
        return self.cases.get(case, self.default)()
switch = Switch()
print(switch.switch(1))  # Output: This is case one.
print(switch.switch(3))  # Output: This is the default case.

در این مثال‌ها، case به عنوان ورودی استفاده می‌شود و بر اساس مقدار آن، تابع یا پیغام مناسب بازگردانده می‌شود. این روش‌ها به شما کمک می‌کند تا نیازهای مختلف را برآورده کنید و کد خود را به صورت خوانا و قابل مدیریت نگه دارید.

پاسخ: 1403/06/02
آخرین آپدیت: 1403/07/26