Dieser Code muss ein Dreieck verschieben, wenn Sie die Eingabetaste drücken. Meine Antwort ist richtig, aber ich verstehe das nicht wirklich.Python - Parameter manchmal ja und manchmal nein
Beobachten Sie die Zeile innerhalb der Option 1->def mov()
dies sollte funktionieren, wenn ich es anrufe, aber es ist nicht.
Jetzt lass uns Option2 wieder loslassen->def mov(A)
schauen Ich habe einen Parameter dort (A
) aber dieser Parameter hat keine Verbindung mit etwas, warum ist es dann nicht mit meiner Option 1? ist es nicht das Gleiche? Wie kann ich wissen, wann ich einen Hilfsparameter wie diesen verwenden muss?
OPTION 1 -FAIL
from Tkinter import *
tk=Tk()
canvas=Canvas(tk,width=400,height=400)
canvas.pack()
canvas.create_polygon(10,10,10,60,50,35)
def mov():
canvas.move(1,5,0)
canvas.bind_all('<KeyPress-Return>',mov)
OPTION2 -Work
from Tkinter import *
tk=Tk()
canvas=Canvas(tk,width=400,height=400)
canvas.pack()
canvas.create_polygon(10,10,10,60,50,35)
def mov(A):
canvas.move(1,5,0)
canvas.bind_all('<KeyPress-Return>',mov)
die 'bind_all' einfach ** erwartet eine Methode, die einen Parameter ** nimmt. –
auch wenn diese Methode nicht damit arbeiten? Wie weißt du, wenn eine andere Methode wie bind_all eine andere Methode benötigt, die einen Parameter akzeptiert? – Shiki
ja, weil der Anrufer das nicht wissen kann. –