имя 'предмет' не определено - PullRequest
0 голосов
/ 18 февраля 2020

Я взял то, что когда-то было классным проектом, и превратил его во что-то более пригодное для работы. Моя программа разработана как система инвентаризации. В настоящее время я гарантировал, что моя программа может экспортировать данные в текстовый файл и импортировать эти данные по запросу, если программа когда-либо закрывается. Я не могу редактировать данные после импорта, пока я сначала не добавлю новые данные в список или не добавлю новые данные в список, а затем импортирую.

Я думаю, что причина, по которой он не работает, заключается в том, что данные, импортированные из списка, еще не имеют логической позиции, пока не будут добавлены новые данные.

class Inventory: 
    def __init__(self):
        self.item = ""
        self.amount = 0
        self.asset_tag = 0
        self.notes = ""

    def add_inventory(self):
        self.item = input("Enter item: ")
        self.amount = int(input("How many? "))
        self.asset_tag = int(input("Enter Asset Tag if available. Enter 0 if not tagged. "))
        self.notes = input("Please add any additional information: ")
    def __str__(self):
        return('Item: %s Amount: %d Asset Tag: %d Notes: %s' %
               (self.item, self.amount, self.asset_tag, self.notes))

inventory_list = []

def edit(inventory_list):
    pos = int(input('Enter the position of the item you would like to edit: '))
    new_inventory = item.add_inventory()
    new_inventory = item.__str__()
    inventory_list[pos-1] = new_inventory
    print('Inventory has been updated. If the amount is now 0 please notify.')

while True:
    print("""
    1. Add new inventory.
    2. Remove item from inventory.
    3. View inventory.
    4. Update current inventory.
    5. Export inventory to file.
    6. Import Inventory file 
    7. Quit
    """)
    ans = input('What would you like to do? ')
    if ans == "1":
        item = Inventory()
        item.add_inventory()
        inventory_list.append(item.__str__())
    elif ans == "2":
        for i in inventory_list:
            inventory_list.pop(int(input('Enter position of item to remove: ')))
            print('Inventory item removed successfully!')        
    elif ans == "3":
        print('\n'.join(map(str, inventory_list)))
    elif ans == "4":
        edit(inventory_list)
    elif ans == "5":
        f = open('Inventory_List.txt', 'w')
        for ele in inventory_list:
            f.write(ele+'\n')
        f.close()
    elif ans == "6":
        with open('Inventory_List.txt') as f:
            data = f.read().splitlines()
            print(data)
            inventory_list.extend(data)
    elif ans == "7":
        break
    else:
        print('Invalid entry, try again.')``` 


1 Ответ

0 голосов
/ 18 февраля 2020
Элемент

не определен в функции редактирования до его использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...