Wie mache ich eine Variable in einem try / except Block public?

9

Wie kann ich eine Variable innerhalb der try / except-Block public machen?

%Vor%

Dieser Code gibt einen Fehler NameError: name 'text' is not defined zurück.

Wie kann ich den variablen Text außerhalb des try / except-Blocks verfügbar machen?

    
x0x 04.09.2014, 13:31
quelle

4 Antworten

17

try -Anweisungen erstellen keinen neuen Bereich, aber text wird nicht gesetzt, wenn der Aufruf von url lib.request.urlopen die Ausnahme auslöst. Wahrscheinlich möchten Sie die print(text) -Zeile in einer else -Klausel, so dass sie nur ausgeführt wird, wenn es keine Ausnahme gibt.

%Vor%

Wenn text später verwendet werden muss, müssen Sie wirklich darüber nachdenken, was der Wert sein soll, wenn die Zuweisung zu page fehlschlägt und Sie nicht page.read() aufrufen können. Sie können ihm vor der try -Anweisung einen Anfangswert geben:

%Vor%

oder in der else -Klausel:

%Vor%     
chepner 04.09.2014, 13:34
quelle
0

Erklären Sie einfach die Variable text outside try except block,

%Vor%     
fledgling 04.09.2014 13:38
quelle
0

Wie bereits erwähnt, gibt es keinen neuen Bereich, der mit der try except -Klausel eingeführt wurde. Wenn keine Ausnahme auftritt, sollten Sie Ihre Variable in locals list sehen und auf den aktuellen (in Ihrem Fall globalen) Bereich zugreifen können / p> %Vor%

Im Modulbereich (Ihr Fall) locals() == globals()

    
4xy 16.11.2017 19:31
quelle
0

Sie können dies versuchen:

%Vor%     
Amit Karnik 30.05.2016 12:13
quelle