Hi, first ever attempts on Python - thanks in advance.
I am calling def:“Add_expense” repeatedly from def:“Budget”.
My intention was to create a class instance A = category(name) with the parameters shown under init. This instance is called only once, because on subsequent calls the “name” value is recognized, and this step will be skipped.
And then a class function A.expense(qty, descr) that strings together the quantities and descriptions into the self.lists() in init after several function calls, and also cumulates the total balance in self.dict()={‘bal’:0}
However, after the 2nd run of def:“Add_expense”, when I call A.expense(qty, descr) I get the following error:
Exception has occurred: UnboundLocalError
cannot access local variable ‘A’ where it is not associated with a value
Sorry, I’ve searched far and wide, but I’m completely stuck.
thank you!
class category:
options = dict()
keys = list()
def __init__(self, name):
self.name = name
self.qties = list()
self.descrs = list()
self.bal = {'bal':0}
def expense(self, qty, descr):
self.qties.append(qty)
self.descrs.append(descr)
balance = self.bal.get('bal')
balance += qty
self.bal['bal'] = balance
print(self.name, self.qties, self.descrs, self.bal.get('bal'))
def budget():
# [...] More options will be added here.
category.Add_expense()
def Add_expense():
indx = 0
exist = 0
name = input('Name: ')
descr = input('Description: ')
qty = int(input('Quantity: '))
if len(category.options) > 0:
for i in range(0,len(category.options)+1):
if category.options.get(i) == name: exist = 1
if exist != 1:
A = category(name)
category.options.update({indx:name})
category.keys.append(name)
elif exist == 1:
exist = 0
A.expense(qty, descr)
category.budget()
category.budget()