2017-03-22 2 views
0

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

+1

A quoi ressemble votre code comme? les modules ne fonctionnent généralement pas seuls quand vous les importez ... – ryugie

+0

il ne contient que trois fonctions. –

Répondre

0

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() 
+0

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