[python] globalni a lokalni promenne

Petr Vanek vanous na penguin.cz
Úterý Prosinec 10 20:59:56 CET 2002


> > On Mon, Dec 09, 2002 at 10:59:06PM -0500, Petr Vanek wrote:
> > co musim udelat, abych mohl v cele aplikaci pouzivat tuhle connekci? ted
> > mi to vraci asi (logicky): raise error, "not bound to database"
> > ja v tech lokalnich a globalnich promennych mam takovy chaos, vzdycky
> > to nejak zmastim, ale nejak to preci musi byt korektne, ne?

upresnim:

mam aplikaci ( http://cvs.penguin.cz/index.cgi/PyBookShelve/ ) ve ktere
chci pouzivat databazi. chci se pripojit jen jednou a v cele te aplikaci
pouzivat to spojeni (ted mne napada - nemusi to byt _perzistentni_
pripojeni? - ja jsem vetsinou delal v php + mysql a tam to je asi
jinak...). zkusil jsem si teda vytvorit funkci pro pripojeni, tu zavolam
ale nemuzu ten connect dale pouzivat, protoze tvrdi, ze neni napojen...

> On Tue, Dec 10, 2002 at 10:32:30AM +0100, Radek Kanovsky wrote:
> 
> vono neni jasne, co chtej vlastne delat. Pokud gadfly nedela nejake
> kejkle s importem, tak jim tahle funkce vrati vzdy nove spojeni do
> databaze a to by melo fungovat i mimo tuto funkci. Mozna by bylo dobre,
> kdyby poslali nejaky kratky priklad, ktery jim takto havaruje.
> 
> Pokud by chteli, aby tato funkce vratila vzdy stejne spojeni (nejaka
> obdoba singletonu), tj. stejnou instanci spojeni, musej to udelat trosku
> jinak.

jojo, chci volat porad to stejne pripojeni...

> no, pouzivat... jak tuhle metodu volaj? co kdyby to udelal
> tak, ze do jednoho modulu by dal tohle:
> 
> import gadfly
> conn=gadfly.gadfly()
> conn.startup=(db,dir)
> 
> a v ostatnich by volal:
> import muj_konekti_modulek
> ...
> ...
> def nejaka_slaka_funkce:
> 	global conn
> 	...
> ...
> 
> nemam to vyzkousene, takze jim to mozna bude
> pekne nadavat.
> 
nedal jsem to do mudulu, ale zkusil jsem to dat primo na zacatek
programu, ale nejede to takhle... ;-(

On Tue, Dec 10, 2002 at 10:58:35AM +0100, Jan Svec wrote:
> 
> Na to si davaj pozor. Lokalni a globalni promenne jsou
> hajzli a kazdy by mel umet, kdyz ukazeme na jmeno promenny,
> rict, jestli je lokalni nebo globalni! Proto take
> nedoporucujou pouzivat 'from module import *', protoze to
> naimportuje spoustu veci a pak uz mi nereknou, ktera
> promenna je kde definovana :)

se polepsej ;-) , budou vic cist manualy

> 
> Pokud maj bordel ve jmenech, zkusi tohle:
> 
> def connect(self,db,dir):
> 	global gadfly, conn
> 	import gadfly
> 	conn=gadfly.gadfly()
> 	conn.startup=(db,dir)
> 	return conn
> 
> Po volani teto funkce maj globalnim v namespace dve novy
> promenny - gadfly (modul) a conn (konekce).

zkusili, ale nepohlo jim to...

> 
> > co musim udelat, abych mohl v cele aplikaci pouzivat tuhle connekci? ted
> > mi to vraci asi (logicky): raise error, "not bound to database"
> 
> To ale vypada, ze nejsou pripojeny k databazi! Nemaj problem
> na jejich strane?

prave, myslej si, ze to neni perzistetni spoj. jdou na to kouknout

> PS: Maj v Kanade hodne snehu? V Cechach snih nemame, jen
> strasnej mraz, rano nam malem upadli usi. Asi vytahneme
> kulicha.
> hm, to musej mit ramena jako "schwarzgreen", kdyz
> musej v kanade uklizet kvanta snehu... :)
>

tady to maj k tomu snehu:
vloni to bylo o nicem, slaba zima celkove nic moc. letos to vypada lepe,
i kdyz tento tyden nam hlasej zase plusy. uz jsme meli i minus dvacet
sedum (slovy dvacet sedum pod nulou) a napadlo nam hafo snehu, winter
jak slak!!! sak si to letos uzivaj i kdyz nemaj zimu obecne radi...nase
draha polovicka jezdi na bezkach i do office, jojo, ta ma radost ;-)


dou koukat na dokumentaky k gadfly, sak to nejak musi byt, ne?

bajo
-- 

bye

Vanous
-------------------------------------------------
Petr Vanek                       ..... ./\.  ....
Debian GNU Linux                 .. _|\|  |/|_ ..
vanous na penguin.cz                .. \        /...
http://www.penguin.cz/~vanous    ... >______< ...
Angus, Ontario, CANADA           ...... / .......
-------------------------------------------------
Registered linux user #217487
------------- další část ---------------
A non-text attachment was scrubbed...
Name: [žádný popis není k dispozici]
Type: application/pgp-signature
Size: 232 bytes
Desc: [žádný popis není k dispozici]
URL: <http://www.py.cz/pipermail/python/attachments/20021210/2e1dce6f/attachment.asc>


Další informace o konferenci Python