Re: [python] OT: umazavani adresy pri citaci v mailing listu (bylo Compile-time vs. run-time)

2007-07-09 Tema obsahu Petra Javornicka
On 7/10/07, Petr Prikryl

> Jenže když nemáš rozumně nastaveného mailového klienta,
> tak tam tu adresu odesílatele opíše. V tom je ten problém.
> Ale podle mého je to do značné míry nastavením maileru.

Pro diskuse kolem Pythonu a Djanga pouzivam webovyho klienta gmail.com
a jak quotuje, tak holt quotuje. Ale v rade  mailistu se ta adresa
pouziva pro komunikaci peer-peer. Takze na to urcite neexistuje
jednotny pohled.

Zkusim si na to u Tebe davat pozor.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] OT: umazavani adresy pri citaci v mailing listu (bylo Compile-time vs. run-time)

2007-07-09 Tema obsahu Petr Prikryl
> > P.S. Při citaci jména umazávej e-mailovou adresu, prosím.
> >  Jinak budu chodit domů s kapsama plnýma Viagry a
> >  šeky z výherních loterií ;)
> 
> Pokusim se o to, ale kdo vi, jaky bude vysledek, protoze to nikdy
> nedelam :-)
> 
> BTW, nepatri mezi jednu ze zakladnich zasad pocitacove bezpecnosti
> nevystupovat v public forech pod vlastni identitou a s vlastni
> domenou?

Přiznám se, že jsem výukou počítačové bezpečnosti neprošel,
ale doporučovat konspirativnost mi připadá trochu divné.
Přispívám prostřednictvím uzavřeného mailing listu. Ten
je sice někde archivován a přístupný formou HTML, ale rozumný 
správce původní e-mailovou adresu vždycky nějak pozmění, 
aby se nedala nějakým robotkem vykousnout. Jenže když nemáš
rozumně nastaveného mailového klienta, tak tam tu adresu odesílatele
opíše. V tom je ten problém. Je to stejné, jako kdybys to tam
napsala ručně.

Doma si člověk může šolichat, co chce a jak chce. Ve firmě to 
pod kontrolou nemám. Nemůžu si vybrat.

Ale podle mého je to do značné míry nastavením maileru.
Při přispívání do mailing listu citaci stejně ručně osekávám,
ale i kdybych to neudělal, objeví se v citaci tvého příspěvku
tohle

> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of
> Petra Javornicka
> Sent: Monday, July 09, 2007 5:41 PM
> To: Konference PyCZ
> Subject: Re: [python] Compile-time vs. run-time (bylo
> Nesrozumitelneprirazovaci prikazy...)

Jediná použitelná adresa je tam [EMAIL PROTECTED], a ta je na to 
dělaná, aby uměla odmítat jakékoliv příspěvky.
 
> A public maily dnes maji na serverech diky bayesovskym filtrum spamy
> docela zmaknuty - aspon me toho moc nechodi a napr. gmail pouzivam
> proto, ze umi hezky zobrazovat thready

Záleží na tom, jak je tvoje mailová adresa moc profláknutá. 
Je přece jedno, jestli je to tvoje fiktivní adresa nebo ostrá.
Protože tu fiktivní chceš taky používat a nenechat ji zahltit, ne?

No, a protože jsem v minulých příspěvcích tvou jakoukoliv adresu
necitoval, je šance, že si s příchozí poštou nějaký filtr poradí.
Ty jsi moji citovala, takže má šance je menší.

Možná se pletu a dělám něco špatně.

pepr

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


Re: [python] Kamera

2007-07-09 Tema obsahu [EMAIL PROTECTED]
Jde to docela dobře aspoň co já vím (dělám to pod Windows) je třeba
stáhnout modul VideoCapture for Win32. Potom už se to dělá triviálním
způsobem:

from VideoCapture import Device
cam = Device()
cam.saveSnapshot('soubor.jpg')

Mělo by to fungovat pro různé USB kamery například, používá to
DirectShow. Vyžaduje to samozřejmě další moduly, myslím numpy a PIL,
možná ještě něco, to bude v dokumentaci.

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


Re: [python] Znovuspusteni programu

2007-07-09 Tema obsahu Pavel Kosina
Roman Maňák napsal(a):
> Zdravim,
> mam jeden program, ktery spoustim docela casto a nekdy i nekolikrat po  
> sobe. Pokzade mi vsak zustane otevreny Pythonovsky prikazovy radek (ve  
> Win) a ja jej musim zavrit a program spustit znovu. Nevite jestli  
> neexistuje nejaka klavesova zkratka, aby se program spustil znovu bez  
> toho, abych musel zavirat prikazovou radku?
>
>   

Většina lidí má problém opačný, tedy že se jim příkazová řádka hned 
zavře a oni nestihnou nic přečíst ;-)
Takže pro tebe platí opačný postup:
* nespuštěj python s parametrem -i nebo
* na konec programu dej sys.exit()

Ručně: CTRL+Z a Enter.

-- 
geon
Pavel Kosina

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


[python] Znovuspusteni programu

2007-07-09 Tema obsahu Roman Maňák
Zdravim,
mam jeden program, ktery spoustim docela casto a nekdy i nekolikrat po  
sobe. Pokzade mi vsak zustane otevreny Pythonovsky prikazovy radek (ve  
Win) a ja jej musim zavrit a program spustit znovu. Nevite jestli  
neexistuje nejaka klavesova zkratka, aby se program spustil znovu bez  
toho, abych musel zavirat prikazovou radku?

Predem diky

Roman

-- 
Zpráva vytvořena poštovním klientem "M2", který je součástí webového  
prohlížeče Opera.
Více na http://www.opera.com/mail/ .
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] unicode(sys.argv[0],"utf-8")

2007-07-09 Tema obsahu Pavel Kosina
Happy Day napsal(a):
> Dobrý den,
> mám jednoduchý kód:
>
> # -*- coding: utf-8 -*-
> import sys
> print unicode(sys.argv[0],"utf-8")
>

To, že máš program uložen v utf8 neznamená, že všechny vstupy a výstupy 
v něm budou také. Já osobně vždy vyzkouším 4 hlavní - utf8, cp1250, 
cp852, iso8859-2. Tvůj příklad mi fungoval pod xp s cp1250 asi proto, že 
windows takto předává parametr ;-)


-- 
geon
Pavel Kosina

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


Re: [python] unicode(sys.argv[0],"utf-8")

2007-07-09 Tema obsahu Leos Pol
Ahoj,
Happy Day wrote:
> [...]
> # -*- coding: utf-8 -*-
> import sys
> print unicode(sys.argv[0],"utf-8")
verim tomu, ze na widlich nemas nastavene kodovani utf8, takze bych to 
spis napsal takhle:

print unicode(sys.argv[0], 'pc1250')

Leo

-- 

Leos Pol
Team Leader
Radiante Corp.

If it can be imagined,
we can implement it

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


Re: [python] Dekoratory, Django... (bylo Nesrozumitelne prirazovaci prikazy...)

2007-07-09 Tema obsahu radek
>
> Aspon neco ;-) Jak uz jsem psala: v souvislosti s Python & Django jsme
> narazili na dve komunity (jedna neni Python/Django oriented), kde
> zustavaji dotazy (nejen nase) bez odpovedi. Nikde jinde jsem se
> nesetkala, aby dotaz k problematice zustal nezodpovezeny, aby nekdo
> neposlal aspon RTFM  nebo douc se to a to.
> Divny lidi :-(

Django skupin je vic. django-users, django-developers, django-cs...
Pak je tady hodne pouzitelne IRC #django

> My jsme zrejme s Djangem ve stadiu 'get frustrated', ale hobbisti
> nejsme, takze to TG asi nepripada v uvahu. Bud ohneme Django podle
> nasich potreb a nebo na Python a jeho frameworky zapomeneme.

Co takhle do django-cs zopakovat ony dotazy, co jste dali do django-users?

Radek

PS: U Pythonu se jeste muzete podivat na ZOPE :)
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Compile-time vs. run-time (bylo Nesrozumitelne prirazovaci prikazy...)

2007-07-09 Tema obsahu Petra Javornicka
On 7/9/07, Petr Prikryl

> Technicky a pragmaticky se za kompilované jazyky
[...]
> Interpretované jazyky umožňují psaní programů,
[...]

Ja se nebavila o jazykach, ale o compile-time ;-)
Ale hlavne ze si rozumime, ne? :-)


> P.S. Při citaci jména umazávej e-mailovou adresu, prosím.
>  Jinak budu chodit domů s kapsama plnýma Viagry a
>  šeky z výherních loterií ;)

Pokusim se o to, ale kdo vi, jaky bude vysledek, protoze to nikdy nedelam :-)

BTW, nepatri mezi jednu ze zakladnich zasad pocitacove bezpecnosti
nevystupovat v public forech pod vlastni identitou a s vlastni
domenou?

A public maily dnes maji na serverech diky bayesovskym filtrum spamy
docela zmaknuty - aspon me toho moc nechodi a napr. gmail pouzivam
proto, ze umi hezky zobrazovat thready
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] unicode(sys.argv[0],"utf-8")

2007-07-09 Tema obsahu Happy Day
Dobrý den,
mám jednoduchý kód:

# -*- coding: utf-8 -*-
import sys
print unicode(sys.argv[0],"utf-8")

Soubor je uložen v PSPadu ve formátu utf-8.
sys.argv je seznam jehož prvek s indexem [0] má být cesta odkud je *
.py spuštěn. To funguje super když teda není v názvu (ani v celé
cestě) žádný český znak.
Když spustím "á.py" tak se zobrazí:

Traceback (most recent call last):
 File "E:\Python\PYTHONS\ß.py", line 3, in 
   print unicode(sys.argv[0],"utf-8")
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 18-
20: invalid d
ata

Děkuji za každou reakci.
Vlastimil Ovčáčík
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

[python] Compile-time vs. run-time (bylo Nesrozumitelne prirazovaci prikazy...)

2007-07-09 Tema obsahu Petr Prikryl
Petra Javornicka
> Petr Prikryl
> > V Pythonu se v čistém slova smyslu nic nedělá v compile-time.
> > Všechno jede spíš v run-time. Jde jen o to jestli dříve (při
> 
> Ja bych v cistem slova smyslu rekla, ze se to preklada, protoze vznika
> nejaky p-kod, ne? A kdyz se neco preklada, tak je to v compile-time,
> ne?

Odpovím nejdříve příkladem:
=
# Tady uz se provede prvni prikaz a o existenci f1() se vubec nevi.
print dir()

# Teprve tady vznika f1(), neprovadi se, jen se generuje jeji kod.
def f1():
print 'f1'

print dir() # Tady se uz o f1() vi.
f1()# f1() se spousti, ale o f2() se jeste nevi.
f = f1  # f1() si zpristupnujeme pres jmeno f,
print dir() # ktere se objevuje v prostoru jmen
f() # a f() se hned spousti.

# Teprve tady vnika funkce f2()
def f2():
print 'f2'

print dir()# Teprve tady se o f2() vi.
f1()
f()
f2()
=

Po spuštění to vypadá takto:

=
c:\tmp>python e.py
['__builtins__', '__doc__', '__file__', '__name__']
['__builtins__', '__doc__', '__file__', '__name__', 'f1']
f1
['__builtins__', '__doc__', '__file__', '__name__', 'f', 'f1']
f1
['__builtins__', '__doc__', '__file__', '__name__', 'f', 'f1', 'f2']
f1
f1
f2
=

Prakticky vzato, interpretační a kompilační překladače
se liší jen ve způsobu implementace. Nakonec se vždycky
provádějí strojové instrukce, které odpovídají zdrojovému
textu. Ryzí interpretry, které vůbec neprovádějí překlad
do nějakého mezikódu, jsou buď určeny na výpočetně 
jednoduché věci (shell, cmd), nebo jsou historicky cenné 
(někdy obojí ;)

S rychlejšími počítači a s vývojem technik překladu
se objevují hybridní přístupy (Java s Just In Time 
překladačem, C#).

Technicky a pragmaticky se za kompilované jazyky
pokládají ty, které dokáží vyprodukovat spustitelný
strojový kód v době překladu, se vším všudy, včetně
typové kontroly. Kompilované jazyky tím pádem
poskytují maximální možný výkon (pokud překladač
zná detaily cílové architektury, procesoru...).

Interpretované jazyky umožňují psaní programů, které
generují nebo upravují svůj vlastní kód za běhu.

pepr

P.S. Při citaci jména umazávej e-mailovou adresu, prosím.
 Jinak budu chodit domů s kapsama plnýma Viagry a 
 šeky z výherních loterií ;)
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezidefinice standalone funkci v modulu

2007-07-09 Tema obsahu Petra Javornicka
On 7/9/07, Petr Prikryl <[EMAIL PROTECTED]> wrote:
> Petra Javornicka

> V Pythonu se v čistém slova smyslu nic nedělá v compile-time.
> Všechno jede spíš v run-time. Jde jen o to jestli dříve (při

Ja bych v cistem slova smyslu rekla, ze se to preklada, protoze vznika
nejaky p-kod, ne? A kdyz se neco preklada, tak je to v compile-time,
ne?
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezidefinice standalone funkci v modulu

2007-07-09 Tema obsahu Petr Prikryl
Petra Javornicka
> regnarG
> 
> > Je to úplně to samé. Zavolá funkci a výsledek vloží do proměnné.
> > Jediný rozdíl je v tom, že D je funkce která vrací funkci.
> 
> IMHO ale to je ten nejpodstatnejsi rozdil, protoze ta D funkce tu
> druhou vraci v  'compile-time' , zatimco ta vracena se vykona az v
> 'run-time' a pri cteni toho zapisu clovek musi vedet, ze ta D funkce
> vraci jinou 'executive' funkci, proto mi ten zapis nedaval porad
> smysl. Pak samozrejme interpetr nepotrebuje nic poznavat.

V Pythonu se v čistém slova smyslu nic nedělá v compile-time.
Všechno jede spíš v run-time. Jde jen o to jestli dříve (při
zpracování definice funkce) nebo později (po dokončení zpracování
definice funkce, kdy ji můžeme hned volat).

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


Re: [python] Dekoratory, Django... (bylo Nesrozumitelne prirazovaci prikazy...)

2007-07-09 Tema obsahu Petra Javornicka
On 7/9/07, Petr Prikryl <[EMAIL PROTECTED]> wrote:

> Python má fantastickou komunitu -- i v Česku a na Slovensku. ;)

Aspon neco ;-) Jak uz jsem psala: v souvislosti s Python & Django jsme
narazili na dve komunity (jedna neni Python/Django oriented), kde
zustavaji dotazy (nejen nase) bez odpovedi. Nikde jinde jsem se
nesetkala, aby dotaz k problematice zustal nezodpovezeny, aby nekdo
neposlal aspon RTFM  nebo douc se to a to.
Divny lidi :-(


> Upřímně řečeno, tohle je vlastnost každé dokumentace,
> na jejíž formu nejsi zvyklá, ne?

Jen do urcite miry. Treba SQLite, MySQL nebo Postgre maji taky jiny
styl dokumentace a treba BOL k MSSQL jiny styl nez MSDN nebo Borland,
ale ta Pythonacka mi pripada hodne divna. Ale treba je to tim, ze je
vsechno poznameno tim Multi-Python's cirkusem, kterymu jsem taky nikdy
neprisla na chut :-)


> Za Django nemůžu mluvit. Vím o něm, ale nepoužívám ho.
> Některé odpovědi možná najdeš prostřednictvím odkazu
>
> http://groups.google.com/group/turbogears/browse_thread/thread/d3998a4e750c39c9/4d7710c0297e36c3

Jo, koukali jsme i po TurboGears, ale ty se zdaly jeste horsi. Nejspis
to presne vystihl tento prispevek:

If you're quite new to Python programming and web programming in
general, then I'd suggest Django.  It's better documented and easier
to get started in.  If you get frustrated that you can't do certain
things in it, then give TurboGears a look.
[...]
So maybe, TurboGears for hobby or learning.  Django for high-pressure
work environment.  TurboGears for low-pressure work environment (ie
when you get to do your learning on the job).

###

My jsme zrejme s Djangem ve stadiu 'get frustrated', ale hobbisti
nejsme, takze to TG asi nepripada v uvahu. Bud ohneme Django podle
nasich potreb a nebo na Python a jeho frameworky zapomeneme.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezi definice standalone funkci v modulu

2007-07-09 Tema obsahu Petra Javornicka
On 7/9/07, regnarG <[EMAIL PROTECTED]> wrote:

> Je to úplně to samé. Zavolá funkci a výsledek vloží do proměnné. Jediný
> rozdíl je v tom, že D je funkce která vrací funkci.

IMHO ale to je ten nejpodstatnejsi rozdil, protoze ta D funkce tu
druhou vraci v  'compile-time' , zatimco ta vracena se vykona az v
'run-time' a pri cteni toho zapisu clovek musi vedet, ze ta D funkce
vraci jinou 'executive' funkci, proto mi ten zapis nedaval porad
smysl. Pak samozrejme interpetr nepotrebuje nic poznavat.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


[python] Dekoratory, Django... (bylo Nesrozumitelne prirazovaci prikazy...)

2007-07-09 Tema obsahu Petr Prikryl
Petra Javornicka
> Petr Prikryl
> 
> > Jestli nemáte chuť do toho se Python aspoň trošku naučit,
> [...]
> > smažte ho rovnou.  Ale za 2 dny mu na chuť nepřijdete.
> 
> No to abych se skoro ohradila ;-)

Malá provokace k provedení opaku je někdy lepší, 
než přesvědčování... ;)

> Kdybychom nemeli chut se Python *ucit*, tak se jim vubec nebudeme
> zabyvat, protoze za dobu, kterou jsme stravili studiem Pythonu a
> Djanga bychom  meli davno tu web aplikaci hotovou. A jestli to
> smazeme, tak proto, ze dojdeme k nazoru, ze s jinou technologii
> udelame s mensimi naklady vice muziky...

   "One-time Dane Bjarne Stroustrup has never called C++ 
an "object-oriented programming language," and has noted 
on occasion that if you want to use Smalltalk, then 
you should use Smalltalk: Smalltalk is the best Smalltalk there is."

(citováno z http://www.artima.com/weblogs/viewpost.jsp?thread=167119,
také http://www.research.att.com/~bs/hopl2.pdf)

> A co se tyce vlastniho procesu uceni - potrebovali bychom nejakou
> slusnou dokumentaci/ucebnici. Python tutorial jsme zvladli,
> Pilgrimmovo Dive in Python taky, ale s reference guidem, ten nam
> pripada trochu poslabsi - nektere veci jako napr. logging jsou tam
> rozebirany vcetne prikladu ad absurdum,  jine veci jsou jen letmo
> dotceny. 

Python má fantastickou komunitu -- i v Česku a na Slovensku. ;)

> Treba zrovna ty dekoratory: kdyz je budes hledat v obsahu -
> nejsou. V indexu - nejsou. Kdyz je predhodis Googlu a omezis ho na
> site:docs.python.org, tak to najde tu kapitolu, cos mi poslal. Ale tam
> nikde neni uvedeno, ze dekorator musi vracet jinou 'executive' funkci.

To už je vlastnost referenčních příruček. Bývají stručné a neopakují
se. Lehko se dá přehlédnout, že ve třetím odstavci pod modrým rámečkem
je napsáno:

"A function definition may be wrapped by one or more 
 decorator expressions. Decorator expressions are evaluated 
 when the function is defined, in the scope that contains 
 the function definition. The result must be a callable, 
 which is invoked with the function object as the only argument."

I v tom odstavečku se dá přehlédnout "The result must be a callable".
Některé pojmy jsou trochu specifické, ale současně je nutné brát
v úvahu specifičnost dynamických jazyků.

Fakt je, že dekorátory jsou poměrně mladé.

> To se predpoklada jaksi samo sebou. Zato na teze strance maji naprosto
> banalni default argumenty i s prikladem. A teprve, kdyz das Googlu
> hledat samotny dekorator, najdes ho nekde v PEP318 (nebo kolik).

To jo. PEP jsou někdy na pochopení mnohem lepší a pak ještě 
archivované diskuse k PEP.

> Takze vic nez uceni vlastniho Pythonu nam zabira vyznat se v jeho
> dokumentaci a najit v ni relevantni informace. Jeste horsi je to 
> s tim Djangem :-(

Upřímně řečeno, tohle je vlastnost každé dokumentace, 
na jejíž formu nejsi zvyklá, ne? Když si vzpomenu na 
první setkání s unixovským man, ani mi to nepřišlo. Bylo 
to dávno, a moc možností v té době nebylo. Když jsem poprvé
viděl microsoftí help, kroutil jsem hlavou. Dnes s ním dělám 
víc a už jsem zapoměl, jak se orientovat v manovských stránkách.

"Pořádek je pro blbce. Inteligent ovládá chaos."

Někdy neškodí trocha pořádku, ale všechno dělají
lidi.

Za Django nemůžu mluvit. Vím o něm, ale nepoužívám ho.
Některé odpovědi možná najdeš prostřednictvím odkazu

http://groups.google.com/group/turbogears/browse_thread/thread/d3998a4e750c39c9/4d7710c0297e36c3



pepr

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


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezi definice standalone funkci v modulu

2007-07-09 Tema obsahu regnarG
Petra Javornicka napsal(a):
> On 7/9/07, regnarG <[EMAIL PROTECTED]> wrote:
>
>   
>> d=D(f) a d=D(n) je přece pořád to samé (až na název proměnné :D).
>> 
> [...]
>   
>> h=f(2) uloží do h návratovou hodnotu volání funkce f pro dva
>> g=D(f) uloží do g odkaz na novou funkci obalující f
>> 
>
> Jak je videt, tak to to samy neni, protoze stejna syntaxe, ale jina semantika.
> Cim se teda ten interpretr ridi? - ze kdyz funkce dostane proceduralni
> argument,  tak to bere jako odkaz a ne jako volani?
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
>   
Je to úplně to samé. Zavolá funkci a výsledek vloží do proměnné. Jediný
rozdíl je v tom, že D je funkce která vrací funkci. Podle toho to python
"pozná". I když to vlastně nemusí poznávat pro Python je všechno
bezejmený objekt, ať už je to číslo nebo funkce, zachází s tím naprosto
stejně. Je to jako napsat i=6; i=fact(i); jen tady je místo čísla
funkce, ale princip je stejný. Ta proměnná je jen pojmenovaným
ukazatelem na objekt, ať už je to řetězec, číslo, nebo funkce...

-- 

  regnarG
http://regnarg.kx.cz

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


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezidefinice standalone funkci v modulu

2007-07-09 Tema obsahu Petra Javornicka
On 7/9/07, Petr Prikryl <[EMAIL PROTECTED]> wrote:

> Jestli nemáte chuť do toho se Python aspoň trošku naučit,
[...]
> smažte ho rovnou.  Ale za 2 dny mu na chuť nepřijdete.

No to abych se skoro ohradila ;-)

Kdybychom nemeli chut se Python *ucit*, tak se jim vubec nebudeme
zabyvat, protoze za dobu, kterou jsme stravili studiem Pythonu a
Djanga bychom  meli davno tu web aplikaci hotovou. A jestli to
smazeme, tak proto, ze dojdeme k nazoru, ze s jinou technologii
udelame s mensimi naklady vice muziky...

A co se tyce vlastniho procesu uceni - potrebovali bychom nejakou
slusnou dokumentaci/ucebnici. Python tutorial jsme zvladli,
Pilgrimmovo Dive in Python taky, ale s reference guidem, ten nam
pripada trochu poslabsi - nektere veci jako napr. logging jsou tam
rozebirany vcetne prikladu ad absurdum,  jine veci jsou jen letmo
dotceny. Treba zrovna ty dekoratory: kdyz je budes hledat v obsahu -
nejsou. V indexu - nejsou. Kdyz je predhodis Googlu a omezis ho na
site:docs.python.org, tak to najde tu kapitolu, cos mi poslal. Ale tam
nikde neni uvedeno, ze dekorator musi vracet jinou 'executive' funkci.
To se predpoklada jaksi samo sebou. Zato na teze strance maji naprosto
banalni default argumenty i s prikladem. A teprve, kdyz das Googlu
hledat samotny dekorator, najdes ho nekde v PEP318 (nebo kolik).

Takze vic nez uceni vlastniho Pythonu nam zabira vyznat se v jeho
dokumentaci a najit v ni relevantni informace. Jeste horsi je to s ti
Djangem :-(
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Nesrozumitelne prirazovaci prikazy zamichanemezidefinice standalone funkci v modulu

2007-07-09 Tema obsahu Petr Prikryl
pepr
> Za klíčové považuji pochopit, jak funguje dekorování funkce
> bez použití @. Je to historicky starší, funguje to úplně
> stejně, jen se to líp zapisuje a čte (což je důležité).

Opravuji se, s těmi dekorátory se to líp čte (samozřejmě) ;)
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezidefinice standalone funkci v modulu

2007-07-09 Tema obsahu Petr Prikryl
Petra Javornicka
> 
> [...] To je jasny, ale porad nevim, odkud bere interpretr 
> odlisit informaci, aby mohl
> g=D   # pointer
> d=D(f) # taky pointer :-O
> d=D(n) # dereference - call
> 
> U syntaxe dekoratoru s prefixem '@' se to zda byt jasny. 
> Ale u funkce utrousene nekde mezi definicemi?

Za klíčové považuji pochopit, jak funguje dekorování funkce
bez použití @. Je to historicky starší, funguje to úplně 
stejně, jen se to líp zapisuje a čte (což je důležité).

To "u funkce utroušené mezi definicemi" je taky důležité
pro pochopení. Při zápisu bez @ lze dekorování provést
až za koncem definice funkce. Pythonovský zdroják se 
zpracovává sekvenčně shora dolů a ihned se provádí. 
Když se narazí na definici funkce, vytváří se vnitřní
objekt funkce (ekvivalent kompilace) a vytvoří se reference
pojmenovaná předepsaným identifikátorem funkce. Ten 
identifikátor ale od té doby není nijak výsadní
(snad jen, že je v objektu funkce textově zachycen
pro účely ladění nebo pro jiné introspektivní použití).

Pokud mám například

def mojeFunkce(n):
return n * 5

Pak si ji můžu kdykoliv přejmenovat:

f = mojeFunkce

... protože identifikátor mojeFunkce je jen pojmenovaná
reference na vnitřní objekt funkce (objekt v technickém
smyslu, tj. podoba, do které je definice funkce zpracována).

Můžu si pak ověřit, že příkazy vypíšou stejnou identifikaci

print id(mojeFunkce)
print id(f)

... která je v momentální implementaci Pythonu totožná
s adresou (objektu) funkce.

Za předpokladu, že reference odkazuje na "callable"
objekt, chápe se za volání zápis, kdy za referenci
uvedu kulaté závorky (s argumenty nebo bez).

Když se následující příklad uloží do souboru d.py

def mojeFunkce(n):
return n * 5

f = mojeFunkce

print id(mojeFunkce)
print id(f)
print mojeFunkce(3)
print f(3)

def trivialniDekorator(fce):
return fce

f = trivialniDekorator(mojeFunkce)

print id(mojeFunkce)
print id(f)
print mojeFunkce(3)
print f(3)

def prazdnyDekorator(fce):
def obalujici_funkce(n):
return fce(n)
return obalujici_funkce

f = prazdnyDekorator(mojeFunkce)

print id(mojeFunkce)
print id(f)
print mojeFunkce(3)
print f(3)

def plusJedna(fce):
def plusOne(n):
return fce(n) + 1
return plusOne

# Znovu pouziju identifikator mojeFunkce. Od teto chvile se
# zahodi reference na puvodni objekt funkce, coz ale neznamena,
# ze by objekt puvodni funkce zanikl.

mojeFunkce = plusJedna(mojeFunkce) 
print id(mojeFunkce)
print mojeFunkce(3)

# Pri selhani volane funkce se vypise trasovaci zprava, ktera mimo 
# jine uvadi originalni identifikace funkce, ktera je sice stejna, jako 
# pojmenovana reference, ale novy identifikator jiz odkazuje na funkci 
# na jine adrese.

print id(mojeFunkce)
mojeFunkce(None)


Pak se po zavolání programu vypíše následující

C:\tmp>python d.py
17722800
17722800
15
15
17722800
17722800
15
15
17722800
17722992
15
15
17723120
16
17723120
Traceback (most recent call last):
  File "d.py", line 52, in 
mojeFunkce(None)
  File "d.py", line 35, in plusOne
return fce(n) + 1
  File "d.py", line 2, in mojeFunkce
return n * 5
TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'


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


Re: [python] Kamera

2007-07-09 Tema obsahu Jakub Lužný
Dne Sunday 08 of July 2007 21:17:47 Jirka Vejrazka napsal(a):

>   Pod Linuxem s kamerou zrejme pujde pracovat pres nejake zarizeni v /dev
> (nemam s tim zkusenost)

je to Video4Linux (v4l) a /dev/videoX


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


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezidefinice standalone funkci v modulu

2007-07-09 Tema obsahu Petra Javornicka
> V obou případech se jedná o volání funkce. Avšak D(f) vrací nově vyrobenou
> funkci, což je možná matoucí.

Jojo - to je ten stripek do mozaiky - dokud se clovek nepodiva, ze je
uvnitr D(f) zahnizdena dalsi funkce, ktera udela skutecnou praci v
run-time, zatimco ta D(f) se spusti jen compile-time, tak je z toho
Gogo

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


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezidefinice standalone funkci v modulu

2007-07-09 Tema obsahu Jan Matejka
> > h=f(2) uloží do h návratovou hodnotu volání funkce f pro dva
> > g=D(f) uloží do g odkaz na novou funkci obalující f
> 
> Jak je videt, tak to to samy neni, protoze stejna syntaxe, 
> ale jina semantika.
> Cim se teda ten interpretr ridi? - ze kdyz funkce dostane 
> proceduralni argument,  tak to bere jako odkaz a ne jako volani?

V obou případech se jedná o volání funkce. Avšak D(f) vrací nově vyrobenou
funkci, což je možná matoucí.
Jan Matějka

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


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezi definice standalone funkci v modulu

2007-07-09 Tema obsahu Petra Javornicka
On 7/9/07, regnarG <[EMAIL PROTECTED]> wrote:

> d=D(f) a d=D(n) je přece pořád to samé (až na název proměnné :D).
[...]
> h=f(2) uloží do h návratovou hodnotu volání funkce f pro dva
> g=D(f) uloží do g odkaz na novou funkci obalující f

Jak je videt, tak to to samy neni, protoze stejna syntaxe, ale jina semantika.
Cim se teda ten interpretr ridi? - ze kdyz funkce dostane proceduralni
argument,  tak to bere jako odkaz a ne jako volani?
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezidefinice standalone funkci v modulu

2007-07-09 Tema obsahu Jan Matejka

Mozna pomuze tento priklad:


def dekoruj_funkci(f): #funkce, ktera vytvari FUNKCI 
def dekorovana(): #vytvorime novou funkci obalujici funkci f
print "pred volanim"
f()
print "po volani"
return dekorovana

def index():
print "index"

index=dekoruj_funkci(index) #prekryjeme puvodni funkci index (do promenne
index vlozime novy obsah (funkci) navraceny funkci dekoruj_funkci)
index() #volani prekryte fynkce


Jan Matejka

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


Re: [python] Nesrozumitelne prirazovaci prikazy zamichane mezi definice standalone funkci v modulu

2007-07-09 Tema obsahu regnarG
Petra Javornicka napsal(a):
> On 7/9/07, Karel Šrot <[EMAIL PROTECTED]> wrote:
>
>   
>> Treba necht je neco_udelam_s_funkci diferencialni operator D, ktery
>> funkci derivuje. Potom
>> g = D(f)
>> definuji funkci g, ktera je derivaci funkce f
>> 
> [...]
>   
>> d = D(f)(1)  urcime hodnotu derivace funkce f v bode 1, coz je totez jako
>> d = g(1)
>> 
>
> To je jasny, ale porad nevim, odkud bere interpretr informaci, aby mohl 
> odlisit
> g=D   # pointer
> d=D(f) # taky pointer :-O
> d=D(n) # dereference - call
>
> U syntaxe dekoratoru s prefixem '@' se to zda byt jasny. Ale u funkce
> utrousene nekde mezi definicemi?
> ___
> Python mailing list
> Python@py.cz
> http://www.py.cz/mailman/listinfo/python
>
>   
d=D(f) a d=D(n) je přece pořád to samé (až na název proměnné :D).
Pokaždé když je použita syntaxe funkce(parametry), jedná se o volání.
Funkce zrovnatak jako parametry může být i výrazem, takže lze např.
polefunkci[0](). Ale návratovou hodnotou tohoto volání může být taky
funkce, kterou lze poté dál využít. Dekorátor je v podstatě funkce,
která příjmá funkci jako parametr a vrací funkci. A s touto vrácenou
funkcí lze potom dále pracovat, nebo ji zavolat.
takže
f2=f uloží do f2 odkaz na funkci f
h=f(2) uloží do h návratovou hodnotu volání funkce f pro dva
g=D(f) uloží do g odkaz na novou funkci obalující f
a=g(1) tuto funkci zavolá
b=D(f)(1) oba předchozí příkazy najednou -- D(f) vrací funkci, která je
v tom samém výrazu volána s paprametrem 1

-- 

  regnarG
http://regnarg.kx.cz

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