[python] Buducnost Pythonu: lambda, map, filter

Roman Miklos RMiklos na pss.sk
Pátek Listopad 10 15:10:04 CET 2006


ok tak callmeback... 
A ako urobim bez lambda nejaku funkciu, ktora mi vrati funkciu?
Napriklad toto:

>>> def linear(c):
        return (lambda x: c*x)

>>> f1=linear(1)
>>> f2=linear(5)
>>> for x in range(5):
        print "f1(%d)=%d, f2(%d)=%d" % (x,f1(x),x,f2(x))

 
f1(0)=0, f2(0)=0
f1(1)=1, f2(1)=5
f1(2)=2, f2(2)=10
f1(3)=3, f2(3)=15
f1(4)=4, f2(4)=20





Pavel Kosina <geon na post.cz> 
Sent by: python-bounces na py.cz
10.11.2006 14:23
Please respond to
Konference PyCZ <python na py.cz>


To
Konference PyCZ <python na py.cz>
cc

Subject
Re: [python] Buducnost Pythonu: lambda, map, filter






Roman Miklos napsal(a):
> 2) callbacky pri widgetoch v Tkinteri: 
> * Ak je ten callback jednoducha funkcia a pouzije sa iba raz napriklad 
pri 
> jednom buttone, naco ju definovat sepratane pre cely skript, ked ju 
staci 
> zadefinovat cez lambda iba na tom mieste kde sa pouzije.
>
> * callback s argumentom - t.j ak chces napr. pouzit ten isty callback 
pri 
> viacerych buttonoch, napr.
> def callback(n):
>     print "button", n
>
> Button(text="jeden",   command=lambda: callback(1)).pack()
> Button(text="dva",   command=lambda: callback(2)).pack()
> ...
> 

def callback(n):
    print "button", n


from functools import partial as callmeback

Button(text="jeden",   command=callmeback(callback,1).pack()
Button(text="dva",   command=callmeback(callback,2).pack()




-- 
geon
Pavel Kosina

_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python


Mgr. Ing. Roman MIKLÓ© 
Prvá stavebná sporiteµňa a.s. 
Bajkalská 30, P. O. Box 48 
829 48  Bratislava 25 
Tel.: +421/ 2 / 582 31 174 
Fax: +421/ 2 / 582 31 109 



Daląí informace o konferenci Python