Как создать экземпляры в классе, используя ввод пользователя? - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь создать любое количество экземпляров в классе в зависимости от ввода пользователя, но пока не могу:

class CLASS_INVENTORY:
    maxcount_inventory = int(input("How many Inventories: "))
    for count_inventory in range(maxcount_inventory): 
        def __init__(Function_Inventory, inventory_name(count_inventory)):
            add_inventory = str(input("Enter Inventory #%d: " % (count_inventory+1)))
            inventory_name[count_inventory] = add_inventory   

Примечание: я немного новичок в Python 3, поэтому я 'Я не уверен, что некоторые из моих синтаксисов верны.

Я хочу, чтобы вывод был таким:

How many Inventories: 4
Enter Inventory #1: Fruits
Enter Inventory #2: Veggies
Enter Inventory #3: Drinks
Enter Inventory #4: Desserts

Вот мой полный код: https://pastebin.com/3FBHgP6i Я бы тожехотел бы знать правила написания кода на Python 3, если я правильно следую им или я должен что-то изменить.Я хотел бы, чтобы это было максимально читабельным для других программистов Python.

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Я бы сделал что-то вроде этого:

# Define class
class CLASS_INVENTORY():
   # On making a class object init will be called
   def __init__(self):
       # It will ask for the inventory type count
       self.maxcount_inventory = int(input("How many Inventories: "))
       self.inventory = []
       # Just loop around it to get the desired result
       for count_inventory in range(0, self.maxcount_inventory):
           add_inventory = str(input("Enter Inventory #%d: " % (count_inventory+1)))
           self.inventory.append(add_inventory)

Вывод:

CLASS_INVENTORY()
How many Inventories: >? 2
Enter Inventory #1: >? Apple
Enter Inventory #2: >? Orange
0 голосов
/ 03 октября 2018

Вы можете создать свой диктитон в def _init__(self), а затем настроить отдельный метод print_inventories с циклом print, сохраняя порядок ввода

class Inventory():
    def __init__(self):
        self.inventories = {}
        n = int(input('How many inventories: '))
        for i in range(1, n+1):
            self.inventories[i] = input('Enter inventory #{}: '.format(i))

    def print_inventories(self):
        for k in self.inventories:
            print('#{}: {}'.format(k, self.inventories[k]))

a = Inventory()
a.print_inventories()
How many inventories: 4
Enter inventory #1: Fruits
Enter inventory #2: Veggies
Enter inventory #3: Drinks
Enter inventory #4: Desserts
#1: Fruits
#2: Veggies
#3: Drinks
#4: Desserts
0 голосов
/ 03 октября 2018
class CLASS_INVENTORY():
    maxcount_inventory = int(input("How many Inventories: "))
    inventory=[]
    def __init__(self):
        for count_inventory in range(0, self.maxcount_inventory):
            add_inventory = str(input("Enter Inventory #%d: " % (count_inventory+1)))
            self.inventory.append(add_inventory) 
...