作业需求
1、额度 15000或自定义
2、实现购物商城,买东西加入 购物车,调用信用卡接口结账
3、可以提现,手续费5%
4、支持多账户登录
5、支持账户间转账
6、记录每月日常消费流水
7、提供还款接口
8、ATM记录操作日志
9、提供管理接口,包括添加账户、用户额度,冻结账户等。。。
10、用户认证用装饰器
需求9、10没做
程序结构
主程序ATM
只是一个入口
知识点
获取当前文件路径:os.path.abspath(__file__)
获取当前文件的文件夹路径:
os.path.dirname(os.path.abspath(__file__))
import os import sys dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #找到路径 sys.path.insert(0, dir) #添加路径 print(dir) #将main.py里面所有代码封装成main变量 from core import main if __name__ == "__main__": #这里我刚开始用run()就爆错了 main.run()
重要程序放在mian中:
在run中进行登陆,认证用户,然后用交互程序调用程序(扩展性更好)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
""" 主逻辑交互模块 """ from core import auth from core import log from core import transaction from core import account import sys #用户数据信息 user_data = { 'account_id':None, #帐号ID 'is_authenticated':False, #是否认证 'account_data':None #帐号数据 } #调用log文件下的log方法,返回日志对象 access_logger = log.log("access") def account_info(acc_data): """ acc_data:包括ID,is_authenticaed,用户帐号信息 查看用户帐户信息 :return: """ print(acc_data) def repay(acc_data): """ acc_data:包括ID,is_authenticaed,用户帐号信息 还款功能 :return: """ print(acc_data) #调用account模块的load_account方法,从数据库从load出用户信息 account_data = account.load_account(acc_data["id"]) print(account_data) current_balance = """ -------------BALANCE INFO-------------- Credit:%s Balance:%s """ % (account_data["credit"], account_data["balance"]) print(current_balance) back_flag = False while not back_flag: repay_amount = input("