Как это "ссылка перед назначением"? - PullRequest
1 голос
/ 16 апреля 2009

У меня есть немного Python для подключения к базе данных с переключателем для локального и живого.

    LOCAL_CONNECTION = {"server": "127.0.0.1", "user": "root", "password": "", "database": "testing"}
    LIVE_CONNECTION = {"server": "10.1.1.1", "user": "x", "password": "y", "database": "nottesting"}

    if debug_mode:
        connection_info = LOCAL_CONNECTION
    else:
        connnection_info = LIVE_CONNECTION
    self.connection = MySQLdb.connect(host = connection_info["server"], user = connection_info["user"], passwd = connection_info["password"], db = connection_info["database"])

Локально работает (Windows, Python 2.5), но работает (Linux, Python 2.4). Я получаю:

UnboundLocalError: local variable 'connection_info' referenced before assignment

Я вижу ту же ошибку, даже если я удаляю if / else и просто присваиваю информацию о соединении напрямую значению LIVE_CONNECTION. Если я жестко закодирую текущие значения соединения в последнюю строку, все это работает. Я явно сонный. Что я не вижу?

Ответы [ 2 ]

16 голосов
/ 16 апреля 2009

Второе назначение написано с ошибкой.

Вы написали connnection_info = LIVE_CONNECTION с 3 n.

4 голосов
/ 16 апреля 2009

Опечатка: connnection_info = LIVE_CONNECTION

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