2008/6/7 superman <[EMAIL PROTECTED]>: > > > Globální proměnné nejsou prasení v rozumném počtu. Stejně tak jako > > leccos dalšího. > > > > > > V tomhle si dovolim nesouhlasit. Pokud programator potrebuje pouzit > > globalni promennou, udelal v navrhu datovych struktur chybu. > > > > Já tenhle názor nesdílím. Globální proměnná je zkrátka jenom datová > proměnná viditelná pro všechny moduly programy. Představte si třeba, že > máte multithreadovou aplikaci, která po startu > neudělá nic jiného, než rozjede x threadů (třeba několik tisíc), a > všechny thready budou synchronizovány v určitých fázích pomocí jednoho > synchronizačního objektu. Pak nevidím důvod, proč synchronizační objekt > neprohlásit za globální proměnnou, byť uznávám, že je to věcí názoru.
Dispatcher (server), ktery spousti nekolik tisic vlaken si vytvori vlastni registracni strukturu metadat o kazdem z pustenych vlaken, kteremu pri startu (pokud je to nutne) preda referenci na jeho zaznam. Zde muze byt napriklad struktura semaforu, pripadne jineho synchronizacniho "nastroje", ktery dane vlakno bude kontrolovat/ridit. Takova konstrukce je plne zapouzdrena (objekt dispatcheru si managuje sve ovecky, plus poskytuje interface k vlaknum pro sve okoli) a je umoznena absolutni prenositelnost / zapouzdreni do slozitejsich struktur aplikace. Nevidim zadnou potrebu, a uz vubec ne oduvodnenou, pro existenci globalni promenne. > Stejně tak jsou přirozené globální proměnné - například parametry > procesu, nebo třeba časové pásmo používané vaším procesem, jazyk ve > kterém pracuje proces, aktuální adresář procesu, stavy obsluh signálu a > obslužné funkce, proměnné procesu (myšleno environment procesu), a řada > dalších. Priznavam, ze takove reseni mi nevadi, presto se mi vice libi konstrukt jako napr. import sys sys.path .... nez napriklad $PATH, jako ma BASH. Protoze nedelam slozite konstrukty v bashi casto, uz nekolikrat jsem si omylem prepsal systemove cesty ve skriptu jen nevhodnym pojmenovanim vnitrni promenne. Pak se divite, ze kdyz v bashi udelate napriklad PATH=$1 .... bash skript.sh $PATH skonci vam to s chybou, ze nelze najit interpreter bash :). Priznavam, moje blbost, ale to je dusledek pouzivani globalnich promennych :). Konec OT... Marek
_______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python