TypeError: 'module' objet n'est pas appelable dans mon programme simple sur module python
C'est mon module Python:
main.py
fib/
__init__.py
fib.py
hello.py
fib.py
fonction définie fib()
, hello.py
définir la fonction hello()
.
main.py
est
from fib import *
hello()
__init__.py
est
__all__ = ["fib", "hello"]
J'écris ce code juste pour la pratique.Pas pour le travail
- Je exécuter main.py
d'impression:
Traceback (most recent call last):
File "tes.py", line 5, in <module>
hello()
TypeError: 'module' object is not callable
Pourquoi? J'ai eu la liste de bonjour dans __all__
Répétez après moi: Python, Java n'est pas.
OriginalL'auteur thlgood | 2012-05-22
Vous devez vous connecter pour publier un commentaire.
Vous avez importé la
hello
module avec lafrom fib import *
ligne, mais vous êtes pas référence à lahello
fonction de ce module.Faire ceci à la place:
ou ceci:
OriginalL'auteur Martijn Pieters
Vous importez le module, pas la méthode. Vous avez probablement besoin de faire
hello.hello()
.OriginalL'auteur Silas Ray
C'est parce que vous le module d'importation, mais ne fonctionnent pas, vous pouvez essayer:
OriginalL'auteur Denis
Si vous souhaitez accéder à
hello()
après l'utilisation de seulementfrom fib import *
, vous devez remplacer votre__init__.py
fichier avec:Il importe la
fib
ethello
de fonctions de haut-niveaufib
module. De cette façon, lorsque vous appelezfrom fib import *
, le fonctionhello()
sera dans votre espace de noms, pas la modulehello
que vous avez actuellement mis en œuvre.OriginalL'auteur SethMMorton