Обработка ошибок из списка Python - PullRequest
0 голосов
/ 25 мая 2018
def add_to_cart():
# Import globals as required
global item_images
global item_names
global item_prices
global count
global total_price

# Find required item details by using the active location of the listbox cursor
img_index = item_box.index(ACTIVE)
name_index = item_box.index(ACTIVE)
price_index = item_box.index(ACTIVE)
# Check listbox to make sure it has been populated and item is selected
#### Do i need this section ####
selection = item_box.curselection()
if selection:
    item_box.delete('0', END)
    item_box.insert(END, "Oops please select a category")
else:    
# Append cart lists ready for html invoice
    cart_imgs.append(item_images[img_index])
    cart_names.append(item_names[name_index])
    cart_prices.append(item_prices[price_index])
# Do i need this handle and if so how do i use it...
try:
    item_box.index = int(item_box.curselection()[0])
except IndexError:
    item_box.delete('0', END)
    item_box.insert(END, "Oops please select a category")
total_price = total_price + float(item_prices[price_index])

# Increase item count per button press.
count = count + 1

У меня есть список, который действует как список покупок.Пользователи нажимают кнопку категории (компьютер / кухня), которая заполняет список, и затем они могут выбирать / добавлять товары в корзину, которая позже отправляется в HTML.Я получаю ошибку, которая говорит, что cart_img.append(item_images[img_index]) индекс списка находится вне диапазона.

Я знаю, это потому, что в списке ничего нет при нажатии add_to_cart func.(это также потому, что сначала не была выбрана ни одна категория) Я включил оператор if / else, чтобы попытаться передать это, а также обработчик ошибок try / исключением.Я нашел несколько постов, в которых говорится о функции обратного вызова и не совсем понимаю, как реализовать это в этой ситуации.

Буду признателен за любую помощь

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

def add_to_cart():
# Import globals as required
global item_images
global item_names
global item_prices
global count
global total_price

# Find required item details by using the active location of the listbox cursor
img_index = item_box.index(ACTIVE)
name_index = item_box.index(ACTIVE)
price_index = item_box.index(ACTIVE)
# Append cart lists ready for html invoice
cart_imgs.append(item_images[img_index])
cart_names.append(item_names[name_index])
cart_prices.append(item_prices[price_index])
# Update total price for invoice
total_price = total_price + float(item_prices[price_index])
# Increase count per button press.
count = count + 1

1 Ответ

0 голосов
/ 25 мая 2018
def add_to_cart():
# Import globals as required
global item_images
global item_names
global item_prices
global count
global total_price
try:   
# Find required item details by using the active location of the listbox cursor
    img_index = item_box.index(ACTIVE)
    name_index = item_box.index(ACTIVE)
    price_index = item_box.index(ACTIVE)
# Append cart lists ready for html invoice
    cart_imgs.append(item_images[img_index])
    cart_names.append(item_names[name_index])
    cart_prices.append(item_prices[price_index])
# Update total price for invoice
    total_price = total_price + float(item_prices[price_index])
# Increase count per button press.
    count = count + 1
except:
    item_box.delete('0', END)
    item_box.insert(END, "PLEASE SELECT A CATEGORY BEFORE PROCEEDING")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...