美文网首页
在Python 中,如何利用“面向对象”的方式做一个“银行存取系

在Python 中,如何利用“面向对象”的方式做一个“银行存取系

作者: 北方胡子 | 来源:发表于2020-11-30 17:27 被阅读0次
默认文件1605883904332.png

在前几天我参考教程中的“函数课程”写了银行的“存取款系统”里程碑,今天用 python 函数做出一个简单小应用啦!,这次我参考教程中的“面向对象”的知识写了银行“存取款系统”,这里侧重点是要建立两个“对象”:

  1. class Bank(object):
  2. class User(object):

其它代码参考了原来函数中的代码《里程碑,今天用 python 函数做出一个简单小应用啦!》,并使用了函数装饰器的方法。
具体实现代码如下:

import datetime

def valideate(func):
    def wrapper(self,*args,**kwargs):
        amount = str(args[0])
        index = amount.index(".")
        if len(amount) - index - 1 > 1:
            print("输入格式有误,小数点最多保留两位")
        else:
             func(self,*args,**kwargs)
    return wrapper

class Bank(object):
    account_log = []
    def __init__(self,name):
        self.name = name
    @valideate
    def deposit(self,amount):
        user.balance += amount
        self.write_log("存入",amount )
    @valideate
    def withdrawal(self,amount):
        if amount > user.balance:
            print("余额不足")
        else:
            user.balance -= amount
        self.write_log("取出",amount)


    def write_log(self,type,amount ):
        now = datetime.datetime.now()
        create_time = now.strftime("%Y-%m-%d %H:%M:%S")
        data = [self.name,user.username,create_time,type,amount,f'{user.balance:.2f}']
        Bank.account_log.append(data)

class hantang(Bank):
    def __init__(self,name):
        self.name = name

class jianshe(Bank):
    def __init__(self,name):
        self.name = name


class User(object):
    def __init__(self,username,balance):
        self.username = username
        self.balance = balance

    def print_log(self):
        print(Bank.account_log)

#bank = Bank("hantang")
bank = hantang("汉唐帝国银行")
user = User("Andy",1000)

def show_menu():
    menu = """
操作菜单:
0:退出;
1:存款;
2:取款;
3:查看记录;
    """
    print(menu)

while True:
    show_menu()
    num = int(input("请根据菜单编号输入:"))
    if num == 0:
        print("你已退出系统")
        break
    elif num == 1:
        print("存款")
        amount = float(input("请输入存款金额:"))
        bank.deposit(amount)
        print(f"当前余额是{user.balance:.2f}")

    elif num == 2:
        print("取款")
        amount = float(input("请输入取款金额:"))
        bank.withdrawal(amount)
        print(f"当前余额是{user.balance:.2f}")

    elif num == 3:
        print("查看记录")
        user.print_log()
    else:
        print("输入有误")

运行输出结果:


在这里插入图片描述

相关文章

  • 在Python 中,如何利用“面向对象”的方式做一个“银行存取系

    在前几天我参考教程中的“函数课程”写了银行的“存取款系统”里程碑,今天用 python 函数做出一个简单小应用啦!...

  • Python学习笔记之类和对象

    面向对象编程,是当前比较主流的编程方式。Python同样支持面向对象编程,在面向对象编程中,可以编写表示现实世界中...

  • Python全栈之路系列之面向对象基础

    面向对象基本介绍 Python编程方式: 面向过程编程 面向函数编程 面向对象编程 名称定义: 如果函数没有在类中...

  • 营销比赛二三事

    Python面向对象编程三大特性调研 Python面向对象之封装 在Python中,没有类似 private 之类...

  • 第7天,面向对象

    @(python)[笔记] 目录 前言 在python中,一切皆对象面向对象的程序设计的核心就是对象;面向对象的程...

  • 2019-10-23

    python面向对象编程总结 python中的对象:在其...

  • Python面向对象1

    Python支持多种编程方式:面向过程,面向对象,面向切面(装饰器部分)等 OOP思想 面向对象的基本哲学:世界是...

  • python学习笔记之--类

    python是一种面向对象的编程语言,虽然并不要求以面向对象的方式进行编程实现,但是学会使用面向对象的方式进行编程...

  • Python—类(面向对象)

    Python面向对象 python的设计之初就已经是一门面向对象的语言,所以在python中创建一个类和对象是很容...

  • python中"面向对象"来啦........

    python是一种面向对象的语言。 Python中通过使用类(class)和对象(object)来实现面向对象 面...

网友评论

      本文标题:在Python 中,如何利用“面向对象”的方式做一个“银行存取系

      本文链接:https://www.haomeiwen.com/subject/ffcdwktx.html