2013-05-03 5 views
0

Je suis novice en python et j'apprends maintenant à importer un module ou une fonction, mais j'ai eu ces erreurs. Le code python est enregistré sous le nom: hello_module.pyerreur lors de l'utilisation de la commande d'importation en python

code python:

def hello_func(): 
    print ("Hello, World!") 
hello_func() 
import hello_module 
hello_module.hello_func() 

message d'erreur:

Traceback (most recent call last): 
    File "C:/Python33/hello_module.py", line 9, in <module> 
    import hello_module 
    File "C:/Python33\hello_module.py", line 10, in <module> 
    hello_module.hello_func() 
AttributeError: 'module' object has no attribute 'hello_func' 
+1

import hello_module ne doit pas être dans hello_module.py. cela n'a pas de sens. – njzk2

Répondre

4

Vous ne pouvez pas et ne doit pas importer votre propre module. Vous avez défini hello_func dans l'espace de noms actuel, utilisez-le directement.

Vous pouvez mettre la fonction dans un fichier séparé, puis importer que:

  • fichier foo.py:

    def def hello_func(): 
        print ("Hello, World!") 
    
  • fichier bar.py:

    import foo 
    
    foo.hello_func() 
    

et d'exécuter bar.py en tant que script.

Si vous essayez d'importer votre propre module, il va importer se à nouveau, et quand vous faites que vous importez un incomplet module de. Il n'aura pas encore ses attributs, donc hello_module.hello_func n'existe pas encore, et ça casse.

Questions connexes