2017-04-12 13 views
0

Ich habe zwei Python-Dateien, mit denen ich arbeite.Python-Module/Daten importieren?

In cryp.py ich habe:

def test(): 
    test = raw_input("> ") 

In cryptek.py ich habe:

import cryp 
What is your name? 
cryp.test 
print "To be sure your name is: " + test 

Es errrs heraus als "Test nicht definiert ist" Wie kann ich es den Test bekommen Variable von cryp.py?

+0

Haben Sie 'Import cryp' versucht? – lit

+0

Ja, ich habe bereits Import Cryp an der Spitze Ich werde es in – TheCryptek

+0

bearbeiten Ist 'test' ein reserviertes Schlüsselwort in Python? – lit

Antwort

0

(Ich habe Python 3.6.1) So löste ich es aber nicht genau, wie Sie gefragt haben. Hoffentlich gibt Ihnen einen Start:

Cryptek:

from cryp import * 
print("To be sure your name is: " + test) 

CRYP:

name = input ("> ") 
def test(): 
    pass 
test() 

perfekt funktioniert. Das Problem ist, wo die Definitionen kommen.

Benötigen Sie dies, um mit Definitionen zu arbeiten?

+1

Ich habe das gmons probiert, es gibt mir immer noch "Test ist nicht definiert" Ich benutze Import Cryp bereits – TheCryptek

+0

hilft diese Beiträge überhaupt? http://stackoverflow.com/questions/14573021/python-using-variables-from-another-file http://stackoverflow.com/questions/2349991/python-how-to-import-other-python -files http://stackoverflow.com/questions/17255737/importing-variables-from-another-file – gmonz

+1

Nein, tat es nicht wirklich. Ich habe mir das angesehen, bevor ich diese Frage gestellt habe, da es technisch eine der Regeln ist. – TheCryptek

0

Es gibt mehrere Probleme hier. Sie haben die import Anweisung hinzugefügt. Die Funktion test() muss etwas zurückgeben. Wenn nicht, wird None zurückgegeben. Außerdem ist cryp.test ein Funktionsobjekt, während cryp.test() ein Aufruf der Funktion ist.

Die Fehlermeldung, die nicht in der Frage ist, sagt dazu.

Traceback (most recent call last): 
    File "cryptek.py", line 4, in <module> 
    print "To be sure your name is: " + cryp.test() 
TypeError: cannot concatenate 'str' and 'NoneType' objects 

cryp.py

def test(): 
    test = raw_input("> ") 
    return test 

cryptek.py

import cryp 
print "What is your name?" 
cryp.test 
print "To be sure your name is: " + cryp.test() 

C:>python cryptek.py 
What is your name? 
> asdf 
To be sure your name is: asdf 
+0

Nachdem ich das hinzugefügt habe, wird jetzt zweimal mit test = raw_input (">") gefragt, was bedeutet, dass ich einen Namen zweimal eingeben muss, bevor es weitergeht ._. – TheCryptek

+0

Das ist mein Fehler nicht ... hier ist mein Fehler ' Traceback (jüngste Aufforderung zuletzt): File "cryptek.py", Linie 4, in print„\ nUm sicher sein, Ihr Name ist: "+ name NameError: name 'name' ist nicht definiert ' – TheCryptek

+0

@TheCryptek - Sorry, ja, Sie hatten diese Fehlermeldung. Die 'can not concatenate'-Nachricht ist diejenige, die Sie als nächstes bekommen würden, bis'() 'zu' test' hinzugefügt wurde, um es zu einem Funktionsaufruf zu machen. – lit