Je souhaite utiliser mon programme précédent en tant que module. Mais quand j'importe ce programme, le programme s'exécute automatiquement. Je ne veux pas lancer de programme. Je veux juste importer ce programme dans mon nouveau programme en tant que module que j'utilise des fonctions ou des variables de ce module. J'ai essayé d'ajouter cette ligne if __name__ == "__main__"
. Mais cela n'a pas fonctionné aussi. Comment puis-je empêcher cette action? (J'utilise python2.x.x)Module d'importation en Python 2.x.x
Répondre
Le code à l'intérieur du if __name__ == "__main__"
est exécuté uniquement lorsque vous exécutez directement ce programme et qu'il est ignoré autrement.
Le reste du code est exécuté tout le temps.
La bonne façon d'organiser votre code est de déclarer chaque attribut (fonction, constante, classe ...) avant le if __name__ == "__main__"
, puis vous mettez le code qui exécute le programme. Voici la structure:
# only "passive" code until the __name__=="__main__"
# could be importation...
import sys
# ...global variables
version = 42
# ...or functions
def foo(x):
print("foo called")
def bar(x):
print("bar called")
return x + 1
if __name__ == "__main__":
# start the effective code here
print("program running")
print("version :", version)
foo()
n = bar(2)
print(n)
vous pouvez également définir une fonction à appeler à la fin
...
def main():
print("program running")
print("version :", version)
foo()
n = bar(2)
print(n)
if __name__ == "__main__":
main()
PS: J'ai utilisé la syntaxe python3, la seule différence avec python2 concerne le 'print': utiliser' print "foo appelé" 'au lieu de' print ("foo called") 'pour le faire fonctionner sous python2 – User9123
A quoi ressemble votre code comme? les modules ne fonctionnent généralement pas seuls quand vous les importez ... – ryugie
il ne contient que trois fonctions. –