2014-06-07 2 views
-6

Я пишу систему инвентаризации в python.Я не знаю, почему я получаю эту ошибку функции - Python

import time, math, items 
from pygame.locals import * 
while 1: 
    def additem(item): 
     if item in items: 
      items.extend(item) 
      print(item+' has been succefully added to your inventory.') 
     else: 
      print("Invalid command.") 

Это items.py

items = ['sword','cheese'] 

Я получаю ошибку:

Traceback (most recent call last): 
    File "<pyshell#0>", line 1, in <module> 
    additem(sword) 
NameError: name 'additem' is not defined 
+1

Почему там 'в то время как 1:' бесконечный цикл на вершине? Где код, который генерирует само исключение? –

+0

Я положил бесконечный цикл, потому что хочу, чтобы он запускался, как в командной строке (пока). И я вызываю функцию в оболочке. –

+0

Оставьте это для цикла событий pygame. Если вы импортировали этот модуль * как есть * в оболочку, оператор 'import' никогда не завершил бы * в любом случае *. –

ответ

1

У вас есть список под названием items внутри модуля с именем items, когда вы звоните additem вы собираетесь для проверки if item in the module items не list items, так что вы получите еще одну ошибку.

Используйте либо from items import items, либо измените название своего items.

Ваша ошибка, скорее всего, от вызова additem(sword) выше вашей функции additem

Смежные вопросы