[python] otázka ohladom mojho štýlu písania v OOP

Petr Přikryl prikryl na atlas.cz
Úterý Leden 15 16:11:06 CET 2013


> Od: "Roman Beno" <romanbeno273 na gmail.com>
...
>Čo sa týka Raiczeho kritiky, podobný systém s "odkazom na metódy jednej
>konkrétnej instancie" je uplatnený v module random.

V modulu random má ale vytvoření instance _inst jeden důležitý důvod.
Instance použije při své inicializaci aktuální čas jako zárodek pro 
generování náhodných čísel -- ale jen když se neudá explicitně. 
Zárodek (seed) se používá v různých metodách instance.

Je to tam zkrátka složitější a někdy je nutné pracovat se stejným
zárodkem, aby byla posloupnost náhodných čísel opakovatelná :)

Instance tam slouží k uložení toho zárodku. Při prostém používání
nás detaily nezajímají a místo instance a jejích metod nás zajímají
funkce (jako v matematice). Jejich implementace (jako metod interní
instance) může být uživatelem chápána jako implementační detail.

Obecně, práce s instancemi tříd je výhodná jen v situaci, kdy 
instance udržuje nějaký vnitřní stav, tj. kdy má smysl uvažovat
o metodách jen v situaci, kdy by to bez toho vnitřního stavu 
komplikovalo rozhraní volané funkčnosti.

>if __name__="__main__":
>    # čo robit s instaciou(ami) po spustení z termu..
>    ....

Z obecného pohledu v této části nelze mluvit o instancích
tříd protože žádné nemusí existovat. Python není čistě objektově
orientovaný a umožňuje (podobně jako C++) přirozenější
přístup k výstavbě programu.

Petr


Další informace o konferenci Python