Wie verwenden Python tkSimpleDialog.askstring
-
18-09-2019 - |
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()
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).