si __name__ == '__principaux__' appel de fonction

Je suis en train de travailler autour d'un problème que j'ai rencontré dans un morceau de code que j'ai besoin de construire. J'ai un module python que j'ai besoin d'être en mesure d'importer et de passer des arguments qui seront ensuite analysées par le module principal. Ce qui m'a été donnée ressemble à ceci:

#main.py
if __name__ == '__main__' 
    sys.argv[] #pass arguments if given and whatnot
    Do stuff...

Ce dont j'ai besoin est d'ajouter un main() fonction qui peut prendre en argument(s) et de les analyser, puis de les transmettre comme suit:

#main.py with def main()
def main(args):
    #parse args
    return args

if __name__ == '__main__':
    sys.argv[] #pass arguments if given and whatnot
    main(sys.argv)
    Do stuff...

Pour résumer: j'ai besoin d'importer main.py et de les passer en arguments qui sont analysées par la main() fonction et ensuite donner les informations renvoyées à la if __name_ == '__main_' partie.

MODIFIER
Pour clarifier ce que je suis en train de faire

#hello_main.py 
import main.py

print(main.main("Hello, main"))

AUSSI je veux toujours être en mesure de les appeler main.py de shell via

$: python main.py "Hello, main"

Préservant ainsi l' nom == principal

Est ce que je me demande même possible? J'ai passé la meilleure partie aujourd'hui des recherches sur cette question, car j'aimerais, si possible, de préserver la main.py le module que j'ai reçu.

Merci,

dmg

  • Qu'avez-vous essayé? Quelles Erreurs avez-vous? S'il vous plaît dites-moi que vous n'avez pas perdre une journée entière de votre précieux mortalité "recherche", ce problème sans code en cours d'exécution.
  • if __name__ == '__main__': partie n'est exécuté que lorsque le module est appelé, ce n'est pas importé.
  • Quel est le problème avec l'appel de votre main dans le if __name__ =='__main__' avec les arguments passés par sys.argv?
  • Comment appelez-vous un module?
  • l'appel est trop large, oui. Je voulais courir à partir du terminal ou execfile à partir d'un autre module.
  • J'ai été en cours d'exécution de mon code à chaque fois que la recherche d'une solution. J'ai édité ma question pour, nous l'espérons clarifier certains de ce que je suis en train de faire.
  • J'ai édité ma question à clarifier. Je fais appel principal(sys.argv) dans le cas d' nom == 'principal': mais rencontre ArgumentParser objet d'erreur n'a pas d'arguments lors de l'exécution de la main.py à partir du shell par juste de passage dans les arguments