Python-typeerror - 'Modul' - Objekt ist nicht aufrufbar
Ich bin neu in python, also das ist wahrscheinlich, was habe ich nur verpasst...
Ich bin nur versuchen, führen Sie eine Datei, die Anrufe einer anderen Datei.
Habe ich eine Datei wie myfile.py:
#!/usr/bin/python
import another_file
things = ... """ some code """
def mystuff(text, th=things):
return another_def(text, th)
'another_file
' kompilieren/laufen problemlos von selbst und hat die def 'another_def
' und die variable 'th
' (Dies sind nur Beispiele für Namen...)
So ich python
von der Befehlszeile aus, und versuchen Sie dann:
>>> import myfile
>>> t = myfile.mystuff('some text')
und ich bekomme die Fehlermeldung:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "myfile.py", line 18, in mystuff
return another_def(text, th)
TypeError: 'module' object is not callable
Versuchte ich import another_file
obwohl es in myfile.py
aber das scheint nicht zu keinen Unterschied machen.
Ob es einen Unterschied macht, habe ich versucht:
print myfile
<module 'myfile' from 'myfile.py'>
print myfile.mystuff
<function mystuff at 0x7fcf178d0320>
also gehe ich davon aus, dass, wenn Sie es finden können die Datei und der Funktion, das problem ist, wie es versucht, rufen Sie die andere Datei.... vielleicht. Jede Hilfe zu schätzen!
- Kannst du die Methode code
myfile.mystuff
scheint problematisch zu sein? - Wenn Sie geändert haben den Namen, die unschuldigen zu schützen, die Sie gemacht haben diese Frage schwer zu beantworten. Ein "Modul nicht aufrufbar" Fehler bedeutet, dass Sie versuchen, ein Modul verwenden, als wäre es eine Funktion.
- Ich änderte den Namen in der Hoffnung, dass das problem einfacher erscheinen (hat nicht funktioniert, aber naja) - Sie waren Recht eigentlich, denn in den originalen code der "another_file' und 'another_def' den gleichen Namen haben.... seufz. Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht ganz sicher warum Sie bekommen eine
TypeError
(wahrscheinlich gibt es mehr zu ihm als das, was du zeigst), aber wenn Sie möchten, können Sie auf Funktionen zugreifen, die ausanother_file
, dann sollten Sie das tun:Können Sie tun, dass die Verwendung der so genannten wild-import:
vom other_file import *
Und auf diese Weise können Sie den Zugriff auf alle Objekte und Funktionen in dieser Datei. Es sei denn natürlich, Sie haben den
Liste wich beschränken, was exportiert werden kann.
Beispiel:
nun mit der wilden importieren:
sehen Sie nur 'a'