NameError: глобальное имя не определено

Я использую Python 2.6.1 в Mac OS X.

У меня есть два простых файла Python (ниже), но когда я запускаю

python update_url.py 

Я сажусь на терминал:

 Traceback (most recent call last): File "update_urls.py", line 7, in <module> main() File "update_urls.py", line 4, in main db = SqliteDBzz() NameError: global name 'SqliteDBzz' is not defined 

Я попытался переименовать файлы и классы по-разному, поэтому на концах есть x и z. 😉

Файл sqlitedbx.py

 class SqliteDBzz: connection = '' curser = '' def connect(self): print "foo" def find_or_create(self, table, column, value): print "baar" 

Файл update_url.py

 import sqlitedbx def main(): db = SqliteDBzz() db.connect if __name__ == "__main__": main() 

  • numpy.vectorize возвращает неверные значения
  • Показать полноэкранный режим на Tkinter
  • Как указать иерархию каталогов в виджетах GtkTreeView?
  • Google Oauth2.0 с Python: как ограничить доступ к определенному домену?
  • Как получить char * из PyObject, который указывает на строку
  • Как я могу контролировать кнопки Tkinter, когда Python занят?
  • python argparse - добавить действие к subparser без аргументов?
  • Импорт Pandas на сервере Apache вызывает ошибку тайм-аута
  • 4 Solutions collect form web for “NameError: глобальное имя не определено”

    Вам нужно сделать:

     import sqlitedbx def main(): db = sqlitedbx.SqliteDBzz() db.connect() if __name__ == "__main__": main() 

    пытаться

     from sqlitedbx import SqliteDBzz 

    Импорт пространства имен несколько чище. Представьте, что у вас есть два разных модуля, которые вы импортируете, оба из них с тем же методом / классом. Может случиться что-то плохое. Я бы посмел сказать, что обычно это хорошая практика:

     import module 

    над

     from module import function/class 

    Вот как работает Python. Попробуй это :

     from sqlitedbx import SqliteDBzz 

    Таким образом, вы можете напрямую использовать имя без прилагаемого модуля. Или просто импортируйте модуль и добавьте «sqlitedbx». к вашей функции, классу и т. д.

    Python - лучший язык программирования в мире.