Best Practices für Python-Argumente und Schlüsselwort-Argumente

8

Ich schreibe eine Django-App, bei der ich viele Management.py-Befehle erwarte. Ich mag die Idee von Python-Funktionen mit Parametern mit Standardwerten, wobei Sie den Parameter wie folgt definieren:

%Vor%

Ich schreibe meine Verwaltungsbefehle so, dass Sie wie folgt eingeben:

%Vor%

Soweit ich das beurteilen kann, akzeptieren die Befehle von management.py diese Art von Argumentliste nicht. Daher habe ich einen Helfer erstellt, der folgendes tun kann:

%Vor%

Gibt es einen besseren Weg, dies zu tun?

    
Sam Hammamy 03.03.2012, 04:32
quelle

3 Antworten

5

Anstatt eigene zu rollen, können Sie den typischen Parameterstil verwenden und etwas wie argparse verwenden parse es:

%Vor%

Sie würden nur Ihren Argumentparser definieren und dann das Argument args an die Methode parse_args() übergeben.

    
Amber 03.03.2012, 04:44
quelle
12

Aktualisiert: Per @rix, spätere Versionen von Django verwenden jetzt argparse , was bevorzugt werden sollte.

Ursprüngliche Antwort:

Ich glaube, dass der Standardansatz darin besteht, optparse zu verwenden, das sich in die vorhandene Option zum Parsen von Django einklinken kann bereits. Das Beispiel aus den 1.6 Dokumenten :

%Vor%

Jetzt haben Sie Ihre Kommandozeilenargumente im options Dictionary verfügbar. Die Python-Dokumentation sagt, dass optparse veraltet ist, aber ich nehme an, dass die Django-Dokumente es empfehlen, weil es das ist, was Django für seine eigenen Verwaltungsbefehle verwendet.

    
nrabinowitz 03.03.2012 05:41
quelle
3

Docs über @ Python argparse sind großartig, aber für eine schnelle Kopie fügen Sie die Antwort ein, um das Original zu lösen Frage (post Django 1.8) - hier gehts:

%Vor%     
rix 09.08.2016 22:42
quelle

Tags und Links