0

Je voudrais faire quelque chose comme ceci:Comment définir l'aide du programme CLI dans __doc__?

def main(): 
    """ 
    Display Information about a Google Calendar 

    -u --user login  Google Login 
    -p --pass password Google Password 
    -d --debug   Set DEBUG = True 
    -h --help   Display this help 
    """ 

    print(__doc__) 

if __name__ == "__main__": 
    main() 

Mais la réponse est: None ... Pourquoi?

+2

mais une meilleure façon serait d'utiliser http://docs.python.org/library/optparse.html –

+0

Ok, j'utilisais getopt. Mais optparse devrait beaucoup mieux à cet effet. – Natim

Répondre

2

Si l'aide que vous souhaitez imprimer est « global », vous trouverez peut-être plus logique de le mettre comme la documentation principale de votre programme:

#!/usr/bin/env python 
""" 
Display Information about a Google Calendar 
... 
""" 

if __name__ == '__main__': 
    print __doc__ 

__doc__ est une variable globale qui contient la chaîne de documentation de votre script.

+0

Ok, maintenant je vois la différence, mais quel est le meilleur? – Natim

+0

@Natim Que voulez-vous afficher sur pydoc my_prog? Si vous voulez d'abord afficher la documentation pour votre programme dans son ensemble, il est plus simple d'utiliser la chaîne * global * doc. Si vous ne le faites pas, le lecteur doit deviner que le doc pour main() est le doc pour votre programme. – EOL

+0

Ok, ça fait des sens. – Natim

4

Parce que __doc__ est un attribut de la fonction, pas une variable locale. Vous devez parler comme main.__doc__ comme ceci:

def main(): 
    """Display Information about a Google Calendar 

    ...""" 
    print(main.__doc__) 

if __name__ == "__main__": 
    main() 
+0

Bien sûr, c'est aussi simple ... – Natim

Questions connexes