Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
DasIch hat geschrieben:
Sollte man unerwarteterweise doch zig Optionen haben kann es sinn machen aber die meisten dieser kleinen Skripte haben dass nicht. Da hat man i.d.R. eine handvoll Parameter die man in 2 Zeilen "geparst" hat.
Hm ... da würde mich mal ein Bsp. interessieren mit 3 Parametern, bei dem Du eine Typüberprüfung hast und dazu noch einen Hilfetext! Ich denke bereits da hat optparse Vorteile ...
Du nimmst ein dict und nutzt dass zum dispatchen. Bei den paar Parametern sollte ein einfacher Usage String, falls die Anzahl der Parameter o.ä. nicht stimmt, a la ``'USAGE: %s $foo $bar $baz' % sys.argv[0]`` reichen. Den Typ zu prüfen halte ich für überflüssig. Wenn notwendig gibt man die halt an und wer dass nicht liest und meint einfach irgendwas zu übergeben dürfte ziemlich schnell mit einer Exception begrüsst werden.
Zunächst einmal ist es fehlerbehaftet! (Die Usage-Ausgabe ist kaputt, Funktionen akzeptieren natürlich keine weiteren Parameter)
Davon abgesehen ist das imho kein gutes Beispiel. Du mappst direkt auf irgend welche Funktionen, ohne mehrere Parameter angeben zu können.
So etwas hat man imho eher selten. Ich möchte häufiger verschiedene Parameter abfragen und für das Script verfügbar machen.
Das klappt eben nicht so einfach, da Du erst einmal den Parameter rausfiltern und den anschließenden Wert filtern müßtest. Da die Reihenfolge beliebig sein kann, ist das eben nicht ganz so trivial.
Insofern bleibe ich bei meiner These, dass die Verwendung von optparse sich schon bei wenigen Parametern lohnt!
Failed ... dein Beispiel übergibt Parameter an Funktionen, die keine entgegen nehmen, und es zeigt die Usage-Nachricht nur an, wenn man mal vergisst, ein Argument anzugeben. Ein Tippfehler oder ein zusätzliches Argument dagegen führen zu einem netten Traceback ...
Und Optionen kann man so sowieso nicht behandeln ...