Re: [python] (no subject)

2006-10-30 Tema obsahu Petr Prikryl
Od Python 2.5 lze taky využít nový standardní modul
functools a jím definovanou funkci partial() --
viz dokumentace
 
  6.6 functools -- Higher order functions and 
   operations on callable objects. 

Příklad pak lze přepsat takto:

import functools
from Tkinter import*

def pis(co):
print co

okno=Tk()
menubar = Menu(okno)
menu = Menu(menubar, tearoff=0)
cisla=[1,2,3,4,5,6,7,8,9,10]

for prvek in cisla:  
menu.add_cascade(label=prvek, 
 command=functools.partial(pis, prvek))

menubar.add_cascade(label=cisla,menu=menu)
okno.config(menu=menubar)
mainloop() 

Radek Kanovsky
 Radek Kanovsky wrote:
 
  Aby to fungovalo, musi se pouzit nejaky trik:
  lambda p=prvek: pis(p)
  nebo
  new.instancemethod(lambda p:pis(p), prvek, type(prvek))
 
 Ale necistsi reseni bez triku (a jeste pomerne kratke) je asi tohle:
 
 def gen_pis_prvek(prvek):
 return lambda: pis(prvek)
 
 for prvek in cisla:  
 menu.add_cascade(label=prvek, command=gen_pis_prvek(prvek))
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] (no subject)

2006-10-30 Tema obsahu Tomas Brabenec
Nevim, proc mu na ten dotaz odpovidate, kdyz neumi dodrzet ani zakladni 
pravidlo konference :-(

TB


Dne 30.10.2006 10:27, Petr Prikryl napsal(a):
 Od Python 2.5 lze taky využít nový standardní modul
 functools a jím definovanou funkci partial() --
 viz dokumentace
  
   6.6 functools -- Higher order functions and 
operations on callable objects. 

 Příklad pak lze přepsat takto:

 import functools
 from Tkinter import*

 def pis(co):
 print co

 okno=Tk()
 menubar = Menu(okno)
 menu = Menu(menubar, tearoff=0)
 cisla=[1,2,3,4,5,6,7,8,9,10]

 for prvek in cisla:  
 menu.add_cascade(label=prvek, 
  command=functools.partial(pis, prvek))

 menubar.add_cascade(label=cisla,menu=menu)
 okno.config(menu=menubar)
 mainloop() 

 Radek Kanovsky
   
 Radek Kanovsky wrote:

 
 Aby to fungovalo, musi se pouzit nejaky trik:
 lambda p=prvek: pis(p)
 nebo
 new.instancemethod(lambda p:pis(p), prvek, type(prvek))
   
 Ale necistsi reseni bez triku (a jeste pomerne kratke) je asi tohle:

 def gen_pis_prvek(prvek):
 return lambda: pis(prvek)

 for prvek in cisla:  
 menu.add_cascade(label=prvek, command=gen_pis_prvek(prvek))
 
 ___
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/listinfo/python

   
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] (no subject)

2006-10-30 Tema obsahu Tomas Brabenec
Ale ja chtel odpovedet.



Dne 31.10.2006 7:43, Pavel Kosina napsal(a):
 Tomas Brabenec napsal(a):
   
 Nevim, proc mu na ten dotaz odpovidate, kdyz neumi dodrzet ani zakladni 
 pravidlo konference :-(

   
 
 Special cases aren't special enough to break the rules.
 Although practicality beats purity.

 P.S. Blujacker: http://www.py.cz/JakSePtat#nema-kej-odpov-d-t

   
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] OT: RE: (no subject)

2006-10-30 Tema obsahu Petr Prikryl
Tomas Brabenec
 Nevim, proc mu na ten dotaz odpovidate, kdyz neumi dodrzet 
 ani zakladni pravidlo konference :-(

1. Já jsem byl taky kdysi začátečník. Nenapsat subjekt
   zprávy -- v tom nebývá záměr. Ten problém je navíc 
   pro začátečníka matoucí. Jaký by to mělo mít nadpis?

2. Zeptal se na zajímavou věc, na které se dají demonstrovat
   vlastnosti Pythonu a nové možnosti v Python 2.5.

3. Konference tu není kvůli tomu, aby trestala mlčením.
   Dnes toho je všude na čtení opravdu hodně. Však on se 
   k těm pravidlům taky propracuje. On už se někdo najde, 
   kdo ho k nim popostrčí, že geone ;-)

pepr
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] OT: RE: (no subject)

2006-10-30 Tema obsahu Tomas Brabenec
Dne 31.10.2006 7:59, Petr Prikryl napsal(a):
 1. Já jsem byl taky kdysi začátečník. Nenapsat subjekt
zprávy -- v tom nebývá záměr. Ten problém je navíc 
pro začátečníka matoucí. Jaký by to mělo mít nadpis?
   
Ja myslim, ze by stacilo treba Problem s Tkinter porad lepsi jak (no 
subject).

 2. Zeptal se na zajímavou věc, na které se dají demonstrovat
vlastnosti Pythonu a nové možnosti v Python 2.5.
   
Ano to souhlasim, ale 

 3. Konference tu není kvůli tomu, aby trestala mlčením.
Dnes toho je všude na čtení opravdu hodně. Však on se 
k těm pravidlům taky propracuje. On už se někdo najde, 
kdo ho k nim popostrčí, že geone ;-)
   
OK, to ano, ale co treba mu k te odpovedi aspon napsat, aby priste 
napsal neco do predmetu.


Sem myslel, ze kdyz jsme se dohodli na slouceni konfer, ze se budeme 
snazit je drzet pod kontrolou.
Tim myslim, ze pokud se objevi hrisnik (priste jim klidne muzu byt ja 
nebo kdokoliv jiny) tak by mu nekdo mel napsat, ze neco udelal spatne a 
jak to priste udelat spravne.

Ale to je jedno, nebudeme tu delat zbytecne vlakno OT.

TB
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python