首页 > 解决方案 > 将各种对象信息保存在易于访问的位置

问题描述

我正在尝试构建一个预算应用程序,它将帮助我更好地构建和管理资金。

我已经确定我需要管理三种类型的费用: - 每日(如交通费用、工作零食) - 每周购买(如杂志、书籍) - 每月费用(租金、水电费)

我已经用 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。我不介意使用普通的命令式代码

标签: pythonoop

解决方案


我真的相信你想多了,但无论如何我认为你的问题最简单的解决方案是在你的根类中添加另一个属性。
此属性将确定time_span费用(每天、每周或每月),
然后您将能够实现诸如daily_expenses(date)weekly_expenses(time_range)monthly_expenses(datetime_month)
(您的时间范围或日期选项实际上是无穷无尽的......)


推荐阅读