【发布时间】:2021-06-23 02:15:24
【问题描述】:
这就是我想要实现的。
完成budget.py 中的Category 类。它应该能够根据食物、衣服和娱乐等不同的预算类别来实例化对象。创建对象时,它们以类别的名称传递。该类应该有一个名为 ledger 的实例变量,它是一个列表。该类还应包含以下方法:
一种接受金额和描述的存款方式。如果没有给出描述,它应该默认为一个空字符串。该方法应以 {"amount": amount, "description": description} 的形式将对象附加到分类帐列表。
我的代码是
class Category:
ledger =[]
def __init__(self,category):
print(category)
def deposit(self,amount,description):
self.amount=amount
self.description=description
if not description:
return ""
else:
dect={"amount":self.amount,"description":self.description}
print(dect)
ledger.append(dect)
self.ledger=ledger
print(self.ledger)
food=Category("food")
food.deposit(1000,"initial deposit")
but when I am executing it I am getting error message.
Traceback (most recent call last):
File "C:/Users/Admin/Desktop/Python/budject_app.py", line 23, in <module>
food.deposit(1000,"initial deposit")
File "C:/Users/Admin/Desktop/Python/budject_app.py", line 19, in deposit
ledger.append(dect)
NameError: name 'ledger' is not defined
I don't see a typo in the name and tried different things but still it is not working.
【问题讨论】:
-
尝试用
self.ledger.append(dect)引用ledger.append(dect)
标签: python-3.x nameerror