Не уверен, что вам нужно создать класс для этого.Достигнет ли это того, что вы пытаетесь сделать?
# define a generator that ask the user to enter things until they quit.
def ask(thing):
user_input = 'x'
while user_input != 'quit':
user_input = input("Enter %s or 'quit' to stop: " % (thing))
if user_input != 'quit':
yield(user_input)
# use list comprehension to create inventory
inventory = [{c: [ {i: int(input("Enter stock: "))} for i in ask("item")]} for c in ask("category")]
# voila!
print( inventory )
Вот что происходит, когда исполняется приведенный выше код:
$ python3 inventory.py
Enter category or 'quit' to stop: fruit
Enter item or 'quit' to stop: apples
Enter stock: 45
Enter item or 'quit' to stop: bananas
Enter stock: 23
Enter item or 'quit' to stop: berries
Enter stock: 47
Enter item or 'quit' to stop: quit
Enter category or 'quit' to stop: cars
Enter item or 'quit' to stop: fords
Enter stock: 4
Enter item or 'quit' to stop: toyotas
Enter stock: 7
Enter item or 'quit' to stop: quit
Enter category or 'quit' to stop: quit
[{'fruit': [{'apples': 45}, {'bananas': 23}, {'berries': 47}]}, {'cars': [{'fords': 4}, {'toyotas': 7}]}]
Я думаю, вы можете получить это в классе, если хотите.