Frage

Ich will die Antwort von einer AskString Aufforderung verwenden, um eine Variable zu setzen. Unglücklicherweise, Ich habe das Dilemma, dass ich in der Schleife gefangen bin die Frage zu stellen oder das Fenster weigert sich zu ziehen, da die Variable (urltoopen) keinen Wert hat. Der Code, wie es steht:

urltoopen = tkSimpleDialog.askstring('Address', 'Where do we get the pictures from?')
usock = urllib2.urlopen(urltoopen)
data = usock.read()    
usock.close()                     
War es hilfreich?

Lösung

tkSimpleDialog.askstring gibt None, wenn die Benutzer auf Abbrechen klickt oder schließt das Fenster (statt OK zu klicken oder mit der Enter-Taste); Sie sollten das überprüfen (was wollen Sie tun, wenn der Benutzer zurücktritt? sicherlich nicht nennen urlopen sowieso ...).

Abgesehen davon verwenden Sie die Funktion richtig; Ich stelle mir vor, dass durch „keinen Wert hat“ Sie is None bedeuten, nicht wahr?

Andere Tipps


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

funktioniert. Aber es braucht Fehlerbehandlung (wie von Alex erwähnt).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top