رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد
مثال متوسط ۱۲ دقیقه

پشتهٔ جنریک با کنترل خطا

پشته‌ای بساز که هم برای رشته و هم برای عدد کار کند و pop از پشتهٔ خالی را با استثنای معنادار رد کند.

صورت مسئله

پشته‌ای بساز که هم برای رشته و هم برای عدد کار کند و pop از پشتهٔ خالی را با استثنای معنادار رد کند.

مثال حل‌شده

پشتهٔ جنریک

متوسط

صورت مسئله

یک Stack رشته‌ای بساز، دو عضو بگذار، یکی بردار؛ بعد pop از پشتهٔ خالی را امتحان کن.

راه‌حل گام‌به‌گام

    ۴ گام باقی مانده
    from typing import TypeVar, Generic
    
    T = TypeVar("T")
    
    class Stack(Generic[T]):
        def __init__(self) -> None:
            self._items: list[T] = []
    
        def push(self, item: T) -> None:
            self._items.append(item)
    
        def pop(self) -> T:
            if not self._items:
                raise IndexError("پشته خالی است.")
            return self._items.pop()
    
        def peek(self) -> T:
            if not self._items:
                raise IndexError("پشته خالی است.")
            return self._items[-1]
    
    s: Stack[str] = Stack()
    s.push("اول")
    s.push("دوم")
    print(s.pop())  # دوم

    مطالب مرتبط

    از همین بخش و با برچسب‌های مشترک

    این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

    وضعیت پیشرفت برای پشتهٔ جنریک با کنترل خطا