[Python-de] Returnwert

Eagle F10 at gmx.de
Mon Aug 13 22:07:20 EDT 2001


Georg Mischler wrote:

> mike wrote:
> 
> 
>>Hallo Liste,
>>
>>ist es bei dem anhängenden Beispielcode möglich, die Funktion
>>callback mit einem Returnwert zu versehen, der global verwendet
>>werden kann, also die durch die Maustaste ausgelösten
>>x- und y-Werte ?
>>
>>
>>from Tkinter import *
>>
>>root = Tk()
>>
>>def callback(event):
>>     print "clicked at", event.x, event.y
>>
>>frame = Frame(root, width=100, height=100)
>>frame.bind("<Button-1>", callback)
>>frame.pack()
>>
>>root.mainloop()
>>
> 
> 
> Nachdem es sich um eine Funktion wie jede andere auch handelt,
> kannst du natuerlich diese Werte in einer globalen variablen
> (sprich: Modulattribut) hinterlegen. Meistens wirst du dafuer
> eine Deklaration als "global meine_variable" innerhalb der
> Funktion benoetigen.
> 
> Sehr haeufig wird aber als Callbackfunktion eine Methode
> der Klasse verwendet, welche die Steuerung des betreffenden
> Dialogs regelt, womit es sich dann anbietet, den Datenaustausch
> ueber Instanzvariablen abzuwickeln.
> 
> 
> Viel Spass!
> 
> -schorsch
> 
> 

danke erst mal für die Antwort Schorsch,
habe mal folgendes probiert siehe anhängenden Code.


from Tkinter import *

root = Tk()

def callback(event):
     print "clicked at", event.x, event.y
     global a
     a=event.x+event.y
     print a  # diese Zeile funktioniert !

frame = Frame(root, width=100, height=100)
frame.bind("<Button-1>", callback)
frame.pack()

print a  # diese Zeile nicht ??

root.mainloop()


Wo liegt das Problem, deshalb auch die Frage nach dem Returnwert,
welcher ja beim Funktionsruf mitgegeben werden muß aber bei dem 
Funktionsruf callback unterbleibt (unterbleiben muß).

Gruß Mike





More information about the Python-de mailing list