Вопрос

Я хочу использовать ответ из запроса askstring для установки переменной.К сожалению, У меня дилемма в том, что я застрял в цикле, задавая вопрос, или окно отказывается отрисовываться, потому что переменная (urltoopen) не имеет значения.Код в его нынешнем виде:

urltoopen = tkSimpleDialog.askstring('Address', 'Where do we get the pictures from?')
usock = urllib2.urlopen(urltoopen)
data = usock.read()    
usock.close()                     
Это было полезно?

Решение

tkSimpleDialog.askstring ВОЗВРАТ None если пользователь нажимает кнопку Отмена или закрывает окно (вместо нажатия кнопки Ок или использования клавиши Enter);вы должны проверить это (что вы хотите сделать, если пользователь решит отменить?конечно, не звонить urlopen во всяком случае...).

Кроме того, вы правильно используете функцию;Я полагаю, что под "не имеет ценности" вы подразумеваете is None, верно?

Другие советы


root = Tk()   


try:
        urltoopen = tkSimpleDialog.askstring('Ask Address', 'Where do we get the pictures from?')
        usock = urllib2.urlopen(urltoopen)                                                       
        data = usock.read()                                                                      
        usock.close()                                                                            
        a = data                                                                                 
except:                                                                                          
        sys.exit()    

работает нормально.Но это действительно требует обработки ошибок (как упоминал Алекс).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top