it-swarm.com.de

funktion ist kein Fehler in Python definiert

Ich versuche, eine grundlegende Funktion in Python zu definieren, ich erhalte jedoch immer die folgende Fehlermeldung, wenn ich ein einfaches Testprogramm ausführe.

>>> pyth_test(1, 2)

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    pyth_test(1, 2)
NameError: name 'pyth_test' is not defined

Hier ist der Code, den ich für diese Funktion verwende;

def pyth_test (x1, x2):
    print x1 + x2

UPDATE: Ich habe das Skript pyth.py geöffnet, und dann tippe ich im Interpreter pyth_test (1,2) ein, wenn der Fehler angezeigt wird. 

Danke für die Hilfe. (Ich entschuldige mich für die grundlegende Frage, ich habe noch nie programmiert und versuche, Python als Hobby zu lernen.)


import sys
sys.path.append ('/Users/clanc/Documents/Development/')
import test


printline()



## (the function printline in the test.py file
##def printline():
##   print "I am working"
22
Lance Collins

Ja, aber in welcher Datei ist die Definition von pyth_test deklariert? Befindet es sich auch vor dem Namen?

Bearbeiten:

Um es in die richtige Perspektive zu bringen, erstellen Sie eine Datei mit dem Namen test.py mit folgendem Inhalt:

def pyth_test (x1, x2):
    print x1 + x2

pyth_test(1,2)

Führen Sie nun den folgenden Befehl aus:

python test.py

Sie sollten die gewünschte Ausgabe sehen. Wenn Sie sich jetzt in einer interaktiven Sitzung befinden, sollte es so aussehen:

>>> def pyth_test (x1, x2):
...     print x1 + x2
... 
>>> pyth_test(1,2)
3
>>> 

Ich hoffe, das erklärt, wie die Deklaration funktioniert.


Um Ihnen eine Vorstellung davon zu geben, wie das Layout funktioniert, erstellen wir einige Dateien. Erstellen Sie einen neuen leeren Ordner, um die Dinge mit den folgenden Schritten sauber zu halten:

myfunction.py

def pyth_test (x1, x2):
    print x1 + x2 

program.py

#!/usr/bin/python

# Our function is pulled in here
from myfunction import pyth_test

pyth_test(1,2)

Wenn du jetzt rennst:

python program.py

Es wird gedruckt. 3. Um zu erklären, was schief gelaufen ist, ändern wir unser Programm auf diese Weise:

# Python: Huh? where's pyth_test?
# You say it's down there, but I haven't gotten there yet!
pyth_test(1,2)

# Our function is pulled in here
from myfunction import pyth_test

Mal sehen was passiert:

$ python program.py 
Traceback (most recent call last):
  File "program.py", line 3, in <module>
    pyth_test(1,2)
NameError: name 'pyth_test' is not defined

Wie bereits erwähnt, kann Python das Modul aus den oben genannten Gründen nicht finden. Aus diesem Grund sollten Sie Ihre Erklärungen oben behalten.

Nun, wenn wir die interaktive Python-Sitzung ausführen:

>>> from myfunction import pyth_test
>>> pyth_test(1,2)
3

Das gleiche Verfahren gilt. Nun ist das Importieren von Paketen nicht ganz so einfach, daher empfehle ich Ihnen, wie Module mit Python arbeiten. Ich hoffe, das hilft und viel Erfolg beim Lernen!

33
onteria_

Für mich geht das:

>>> def pyth_test (x1, x2):
...     print x1 + x2
...
>>> pyth_test(1,2)
3

Stellen Sie sicher, dass Sie die Funktion definieren, bevor Sie aufrufen.

2
AJ.

In Python sind Funktionen nicht von überall magisch zugänglich (wie zum Beispiel PHP). Sie müssen zuerst deklariert werden. Das wird also funktionieren:

def pyth_test (x1, x2):
    print x1 + x2

pyth_test(1, 2)

Aber das wird nicht:

pyth_test(1, 2)

def pyth_test (x1, x2):
    print x1 + x2
1
bluepnume

Es wäre hilfreich, wenn Sie den Code anzeigen würden, den Sie für das einfache Testprogramm verwenden. Setzen Sie direkt in den Interpreter, dies scheint zu funktionieren. 

>>> def pyth_test (x1, x2):
...     print x1 + x2
... 
>>> pyth_test(1, 2)
3
>>> 
0
zellio

wenn Sie mit der IDLE-Version von Python arbeiten

>>>def any(a,b):
...    print(a+b)
...
>>>any(1,2)
3
0
user4157134