Hoi,
kann mir jemand einen Tipp (z. B. Link auf Code) geben, wie man verboselevel in Comman Line Interfaces "schön" implementiert? Bisher habe ich eine reichlich unschöne Lösung mit einer globalen Variable ...
Gruß,
Christian
PS Irgendwie gibt es z. Zt. wohl Probleme mit ActiveState - außerdem habe ich auch nichts Gescheites ergoogeln können.
verboselevel in CLI definieren?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi Christian!CM hat geschrieben:kann mir jemand einen Tipp (z. B. Link auf Code) geben, wie man verboselevel in Comman Line Interfaces "schön" implementiert?
Schau dir bei ``optparse`` doch mal die ``count``-Action an.
http://docs.python.org/lib/optparse-sta ... tions.html
Ich arbeite in meinen Programmen nicht direkt mit Verbose-Levels, sondern einfach nur mit der "globalen", (angedeutet) konstanten Variable ``DEBUG``. Ich habe kein Problem damit, diesen Sonderfall als globale Variable zu verwenden. Wozu gibt es denn ``global``, wenn nicht für solche Sonderfälle?
Im Kopfbereich setze ich ``DEBUG = False``. Beim Parsen der Kommandozeile wird, falls die Optionen ``-d``- oder ``--debug`` gesetzt sind, die Variable DEBUG auf True gesetzt. Normalerweise würde ich Variablen, die ich im Code ändere nicht GROSS schreiben, aber DEBUG ist da eine Ausnahme.
lg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hoi Gerold,
Allerdings gefällt mir eine Sache nicht: Ständige if-verbose-Abfragen in Funktionen blähen den Code doch sehr auf. Mir scheint aber, daß ich für ein gutes CLI nicht drum herumkomme.
Dankeschön,
Christian
Arrgh! Manchmal kann ich so blind sein! Immer wieder kommt es vor, daß ich solche Dinge einfach nicht parat habe ...gerold hat geschrieben: Schau dir bei ``optparse`` doch mal die ``count``-Action an.
Das sehe ich genau wie Du. Hier ist der Sinn und Zweck für globale Variablen erfüllt.gerold hat geschrieben: Wozu gibt es denn ``global``, wenn nicht für solche Sonderfälle?
Allerdings gefällt mir eine Sache nicht: Ständige if-verbose-Abfragen in Funktionen blähen den Code doch sehr auf. Mir scheint aber, daß ich für ein gutes CLI nicht drum herumkomme.
Dankeschön,
Christian
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Ich wuerde mir eine Funktion definieren:
wobei ich VERBOSE_LEVEL auch als globale Variable definieren wuerde. Dann musst du die if-Abfrage nur einmal machen...
Code: Alles auswählen
def print_output(text, verbose_level=0):
if verbose_level<=VERBOSE_LEVEL:
print text
Hoi
na ja, im Grunde hast Du irgendwie recht. Andererseits ändert es auch nichts. Nach einigem hin und her, habe ich es aber doch so (zumindest so ähnlich) gemacht.
Danke
Christian
na ja, im Grunde hast Du irgendwie recht. Andererseits ändert es auch nichts. Nach einigem hin und her, habe ich es aber doch so (zumindest so ähnlich) gemacht.
Danke
Christian