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

حساب بانکی با قرارداد تمیز

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

صورت مسئله

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

مثال حل‌شده

حساب بانکی

مقدماتی

صورت مسئله

حسابی با موجودی اولیهٔ ۱۰۰ بساز، ۵۰ واریز کن، ۲۰۰ برداشت کن (باید رد شود) و موجودی نهایی را نشان بده.

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

    ۴ گام باقی مانده
    class BankAccount:
        def __init__(self, owner, balance=0.0):
            if balance < 0:
                raise ValueError("موجودی اولیه نمی‌تواند منفی باشد.")
            self.owner = owner
            self._balance = balance
    
        def deposit(self, amount):
            if amount <= 0:
                raise ValueError("مبلغ واریز باید مثبت باشد.")
            self._balance += amount
    
        def withdraw(self, amount):
            if amount <= 0:
                raise ValueError("مبلغ برداشت باید مثبت باشد.")
            if amount > self._balance:
                raise ValueError("موجودی کافی نیست.")
            self._balance -= amount
    
        @property
        def balance(self):
            return self._balance
    
    
    acc = BankAccount("علی", 100)
    acc.deposit(50)
    try:
        acc.withdraw(200)
    except ValueError as e:
        print("رد شد:", e)
    print(acc.balance)  # 150

    مطالب مرتبط

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

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

    وضعیت پیشرفت برای حساب بانکی با قرارداد تمیز