Stoppen Sie die Auswertung innerhalb eines Moduls

9

Ich habe mich daran gewöhnt, Funktionen zu schreiben, die so funktionieren:

%Vor%

Ich versuche herauszufinden, welche Syntax in einem Modul verwendet wird. Ich möchte so etwas machen:

%Vor%

Ich weiß, dass ich dies als if/else schreiben kann, aber es scheint albern, den gesamten Rest meines Moduls einzurücken.

Ich könnte den Rest des Codes in ein separates Modul verschieben und es bedingt importieren, aber das scheint schmerzhaft.

    
Paul McMillan 02.07.2010, 01:49
quelle

6 Antworten

2

Separate Dateien und zusätzliche Einrückungen sind wahrscheinlich vernünftig, da dies zu Beginn etwas Seltsames ist.

Je nachdem, was Sie tatsächlich benötigen, können Sie den gesamten Modulkörper bearbeiten und dann alles löschen, was zu einem späteren Zeitpunkt nicht mehr geeignet ist.

%Vor%     
kwatford 02.07.2010, 02:06
quelle
1

Gerade in der gleichen Situation und ich wollte nicht einen ganzen Code in meinem Modul einrücken. Ich habe Ausnahmen verwendet, um das Laden eines Moduls zu beenden, habe die benutzerdefinierte Ausnahme abgefangen und ignoriert. Das macht mein Python-Modul sehr prozedural (was ich nicht für ideal halte), aber es hat einige massive Codeänderungen gespeichert.

Ich hatte ein gemeinsames / unterstützendes Modul, in dem ich Folgendes definiert habe:

%Vor%

Wenn ich also ein Modul "löschen" oder "stoppen" wollte, würde ich das Modul wie folgt laden:

%Vor%

Und in meinem Modul kann ich die folgende Ausnahme für eine bestimmte Bedingung werfen:

%Vor%     
jdknight 16.05.2014 22:18
quelle
0

Die Einfügung des Bedingungsteils scheint mir in Ordnung zu sein. Wenn es wirklich lang ist - sagen wir mehr als ein oder zwei Bildschirme, würde ich wahrscheinlich die bedingten Teile in separate Dateien verschieben. Ihr Code wird viel einfacher zu lesen sein.

    
John La Rooy 02.07.2010 01:58
quelle
0

Sie müssen Ihren Code auf die eine oder andere Weise einrücken. Der einfachste Weg ist, den Code innerhalb von Funktionen zu definieren und aufzurufen. Das hält die if/else Blöcke sauber.

%Vor%

Alternativ können Sie auch sys.exit verwenden.

%Vor%     
Chris B. 02.07.2010 01:58
quelle
0

Ich würde ernsthaft mit dieser Lösung gehen:

%Vor%

Ernsthaft nicht. Aber es funktioniert.

    
bennedich 02.07.2010 02:21
quelle
0

Sie können die Funktion dazu verwenden:

%Vor%

oder:

%Vor%     
Tomasz Wysocki 02.07.2010 06:07
quelle

Tags und Links