Подтвердить что ты не робот

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()
4b9b3361

Ответ 1

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

import sqlitedbx

def main():
    db = sqlitedbx.SqliteDBzz()
    db.connect()

if __name__ == "__main__":
    main()

Ответ 2

попробовать

from sqlitedbx import SqliteDBzz

Ответ 3

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

import module

над

from module import function/class

Ответ 4

Что работает Python. Попробуйте следующее:

from sqlitedbx import SqliteDBzz

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