No to ano, nejaké javistické predsudky mám, keď sa to tak dá nazvať. Ono je to ale predsalen tak trochu iný spôsob uvažovania, v skriptivacom jazyku oproti kompilovanému. Keď sa k tomu ešte pridá beztypovosť a moja snaha o funkcionálny štýl programovania, tak je to v podste už úplne totálne iné programovanie, ako v Jave :-)
Ale musím povedať, že teraz mi je to už ovela jasnejšie. Matúš On Thu, 11 Feb 2010 15:40:24 +0100, Hynek Fabian <[email protected]> wrote: > matesfila (čtvrtek 11 Únor 2010 14:47:31): >> Funkcia f, ktorá využíva premennú x, môže byť definovaná ešte predtým, >> ako > Zapomen na definovani a zjistis ze to tak slozite neni. U podobne > komplikovanych konstrukci muze byt obtizne domyslet dusledky, ale vsechno > to > vyplyva z jednoduchych pravidel. Nejsou zadne deklarace - krome hrube > kontroly > syntaxe se vsechno provadi v jedine sekvenci (proto v pythonu nejsou zadna > makra). Kdyz program dojde ke konstrukci def, class nebo =, strci vysledek > do > patricneho jmenneho prostoru. To je cele, jediny co je na tom slozity je > zbavit se memu 'deklarace' a s tim spojene predstavy kompileru ktery > predem > 'zna' strukturu programu. Viz nasledujici primitivni uzavera: > def foo(): > def bar(): > pass > return bar > > Ve staticky kompilovanem jazyku je bar() jedina metoda ve vlastnim oboru > platnosti. V pythonu neni zadna funkce bar() dokud nezavolam foo(), a pak > si > ji musim predat pomoci return ven ze jmenneho prostoru foo() pokud ji chci > videt i jinde. > A naopak, kdyz foo() zavolam dvakrat tak interpret dvakrat narazi na > konstrukci "def bar():…" a vytvori dve ruzne (!) funkce > a = foo() > b = foo() > a is b # False > > >> Pre aké jazyky je vlastné takéto chovanie typické? Súvisí to s >> beztypovosťou jazyka, alebo s tým, že je jazyk skriptovací, alebo s čím >> vlastne? > afaik se tomu rika pozdni vazba (late binding) a je to celkem bezna > vlastnost > skriptovacich jazyku (krome Javy ktera si hraje na kompilaci) > U kompilovanych jazyku se to moc nevyskytuje, protoze kdyz kompiler nevi > typ > toho co kompiluje, tak toho moc nenakompiluje :-) ale neni to podminka - > treba > virtualni metody v C++ jsou castecne pozdni vazba (za cenu toho ze nejsou > tak > uplne staticky kompilovane). > > uff to jsem se rozpesul, holt javisticky predsudky je potreba potirat :-) > _______________________________________________ > Python mailing list > [email protected] > http://www.py.cz/mailman/listinfo/python _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
