Enums

Skip to content

این یک متن ترجمه شده ماشینی است که ممکن است حاوی خطا باشد!

Enums (enumerations) روشی برای تعریف یک نوع داده است که فقط می‌تواند مجموعه‌ی محدودی از مقادیر از پیش تعریف‌شده را داشته باشد. این کار باعث می‌شود که از بروز خطاها جلوگیری شود، زیرا یک متغیر فقط می‌تواند مقادیر معتبر داشته باشد.

Enums به طور دقیق برای اعتبارسنجی استفاده نمی‌شوند، اما به ما کمک می‌کنند تا مقادیری را که برای یک متغیر معتبر هستند محدود کنیم و در نتیجه می‌توانند به جلوگیری از خطاها کمک کنند.

به عنوان مثال، اگر کلاسی دارید که یک خودرو را نشان می‌دهد، می‌توانید از یک Enum برای تعریف رنگ‌هایی که خودرو می‌تواند داشته باشد استفاده کنید:

from enum import Enum

class CarColor(Enum):
    RED = "red"
    BLUE = "blue"
    GREEN = "green"
    BLACK = "black"
    WHITE = "white"

class Car:
    def __init__(self, make: str, model: str, year: int, color: CarColor):
        self.make = make
        self.model = model
        self.year = year
        self.color = color
        # این سازنده یک شی ماشین جدید ایجاد می‌کند.

چرا؟

IDE ما هنگام استفاده از enum تکمیل خودکار بهتری ارائه می‌دهد و از تنظیم مقادیر نامعتبر جلوگیری می‌کنیم (آن را دشوار می‌کند). اگر سعی کنیم رنگی را که در CarColor تعریف نشده است اختصاص دهیم، پایتون یک خطا ایجاد می‌کند. این کد را قوی‌تر و نگهداری آن را آسان‌تر می‌کند. هرچه خطاهای احتمالی کمتری وجود داشته باشد، کیفیت کد ما بهتر خواهد بود.

تصور کنید که تابعی داریم که روش‌های پرداخت را مدیریت می‌کند: PayPal، VISA، MASTERCARD و BITCOIN. با استفاده از Enum برای روش‌های پرداخت، می‌توانیم اطمینان حاصل کنیم که این تابع فقط روش‌های پرداخت معتبر را دریافت می‌کند و نه "MASTERCARDD" یا "CASH" که می‌تواند منجر به خطا در برنامه شود.

Enum Meme

Easy مسئله 1 - ایجاد یک Enum

یک Enum به نام EyeColor ایجاد کنید و آن را در کلاس Person از ماژول قبلی پیاده‌سازی کنید. EyeColor باید مقادیر زیر را داشته باشد:

  • BLUE
  • BROWN
  • GREEN
  • HAZEL

Enum به طور گسترده در توسعه بازی استفاده می‌شود

اگر در مستندات بازی‌های مختلف جستجو کنید، اغلب مشاهده خواهید کرد که آن‌ها از Enums برای تعریف مواردی مانند سلاح‌ها، دشمنان، سطوح و موارد مشابه استفاده می‌کنند. این به این دلیل است که مدیریت این نوع موارد را در کد آسان‌تر می‌کند و از بروز خطاها جلوگیری می‌کند.

https://learn.microsoft.com/en-us/minecraft/creator/scriptapi/minecraft/server/blockpistonstate?view=minecraft-bedrock-stable

تبریک، حالا مفهوم شمارش‌ها را درک می‌کنید