2016-05-06 12 views
0

Immer noch sehr neu zu Python, also vergib mir, wenn das offensichtlich scheint, aber Ich fand, dass Argarse verhindert, dass ich Pydoc auf meinem Skript ausführen.Warum funktioniert pydoc nicht, wenn ich argparse benutze?

""" 
    Script to blah blah blah 
""" 

import argparse 

parser = argparse.ArgumentParser(description='Script to do something useful') 

# If I uncomment this line, pydoc fails ! 
#args = parser.parse_args() 

Wenn ich das letzte Zeile Kommentar- und pydocskript, dann erscheint pydoc das Skript ausgeführt wird, um zu versuchen laufen irgendwie, anstatt nur eine formatierte docstring zeigt ??

Wohin gehe ich falsch?

Antwort

0

pydocImporte die Datei, die bedeutet, dass argparse wird dann Sache tun. Der typische Weg, um dieses ist eine bedingte einrichten, die nur ausgeführt wird iff das Modul als das Hauptmodul importiert wird:

""" 
    Script to blah blah blah 
""" 

import argparse 

parser = argparse.ArgumentParser(description='Script to do something useful') 

if __name__ == '__main__': 
    args = parser.parse_args() 

Dies ist ein wirklich gut genutzt und verstanden Idiom in der Python-Community, so dass es isn‘ Keine Magie, die Ihren zukünftigen Lesern schwer fällt. Grundsätzlich hat jedes Modul ein __name__ Attribut (welches der Name des Moduls ist). Das "Master" -Modul (dasjenige, in dem Python seine Ausführung startet) erhält den speziellen Namen __main__ anstelle des typischen Dateibasisnamens ohne die Erweiterung.

+0

Danke für die schnelle Antwort und Klärung. Ich verstehe es jetzt ! –

Verwandte Themen