python - 将各种对象信息保存在易于访问的位置
问题描述
我正在尝试构建一个预算应用程序,它将帮助我更好地构建和管理资金。
我已经确定我需要管理三种类型的费用: - 每日(如交通费用、工作零食) - 每周购买(如杂志、书籍) - 每月费用(租金、水电费)
我已经用 Python 编写了一个通用类,它可以捕获所有这些,但我想给自己更详细的信息,说明每个费用类每月花费我多少,并可能把它放到日历上。
我想知道如何将上述费用类型实现为类,并将它们全部写入一个公共类,在那里它们可以分类和格式化为易于识别的组,如“每日”、“每周”和“每月”但下降在一个通用界面下,我可以在上述结构中汇总费用,以便快速查看和计划等。
有什么建议么?我对 Python Coding 非常陌生——到目前为止,这个想法让我很难过
代码:
class Expenses:
def __init__(self):
self.list = []
"""Create dict containing expense"""
def add_expense(self, name, cost, describe):
val = {"Name": name,
"Cost": cost,
"Description": describe
}
return self.list.append(val)
"""Show all of the expenses contained in the list self.list"""
def list_expenses(self):
for i in self.list:
for k, v in i.items():
print('%s: %s' % (k, v))
"""add up the total of all expenses in self.list"""
def total_expenses(self):
total = 0
for i in self.list:
for k, v in i.items():
if k == "Cost":
total += v
return total
"""remove the given expense
I should create a key that can be used as an indexer"""
def delete_expense(self, num):
return self.list.pop(num)
这可以按我的意愿工作 - 但就像我也试图暗示一样,我想为这门课添加更多细节,我正在使用它来学习 OOP。我不介意使用普通的命令式代码
解决方案
我真的相信你想多了,但无论如何我认为你的问题最简单的解决方案是在你的根类中添加另一个属性。
此属性将确定time_span
费用(每天、每周或每月),
然后您将能够实现诸如daily_expenses(date)
、weekly_expenses(time_range)
或monthly_expenses(datetime_month)
(您的时间范围或日期选项实际上是无穷无尽的......)
推荐阅读
- python - 如何从 Python 路由中调用发送响应后应该继续的任务?
- javascript - 验证后发布表单
- google-cloud-platform - 是否有任何 API 访问 Google 翻译的“您的意思是”功能?
- cors - 主页未加载
- authorization - Blazor wasm 托管'无法从配置/TestApp.Client 加载设置-(AuthenticationService.js)
- ionic-framework - Flurry Analytics 是否支持华为设备上没有 Playstore/GMS 服务的标志性应用程序?
- python - 如何根据某些条件删除存储在numpy数组中的图像参考作为字符串
- mesibo - Angular 7 中的 Mesibo - 会议本地流媒体不起作用
- powershell - 通过powershell删除IE浏览器历史
- julia - Julia shell 命令如何设置环境变量?