[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