@amirkhonov

Как изменить глобальную переменную внутри try/except в Python?

Здравствуйте!
Я новичок в мире Python и появился вопрос по работе с исключениями.
Мне нужно получить страницы сайта с помощью urllib2 и обработать его, а потом полученные результаты в кортеж или в список. Однако когда urllib2 прерывает процесс c кодом HTTPError (когда получает ошибку 404, например) нужно продолжить выполнения этой задачи.
lastversion = ()
try:
            jopen = urllib2.urlopen(j)
            versions = jopen.read() # get tags/versions page
            version = pq(versions)          # send content to pyquery pq
            # ... обработка с pyquery
           lastversion += (version,) # после обработки version добавить его в кортеж lastversion
except urllib2.HTTPError, err:   
            lastversion += ('some_text',)  # когда urllib2 получает ошибку в кортеж добавить это значение
print len(lastversion)


Но в итоге все равно получаю 0 элементов кортежа, т.е. ничего не добавилось.

Вопрос: как быть в такой ситуации? Мне необходимо добавить в кортеж инфу, когда даже urllib2 выдает ошибку и получить заполненный кортеж lastversion.

P.S. Знаком с областью видимости в Python.

Спасибо за ответы!
  • Вопрос задан
  • 836 просмотров
Пригласить эксперта
Ответы на вопрос 3
tema_sun
@tema_sun
Вы используете кортеж (tuple), вместо списка (list). Кортеж - это неизменяемая структура.
Ответ написан
@iegor
Не смущает ошибка: AttributeError: 'tuple' object has no attribute 'append'?
Ответ написан
Комментировать
@amirkhonov Автор вопроса
Короче, внутри try/except можно менять значение глобальной переменной? Если да, то как мне решать это в моем случае?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы