Roman Beno: > To znamená, že pri písaní modulov sa na to OOP nehodí?
Začnu jinak. Neprogramujeme proto, abychom napsali modul, abychom napsali třídu, abychom napsali funkci, abychom definovali datovou strukturu. Programujeme proto, abychom formálně vyjádřili řešení problému tak, aby ho mohl řešit stroj. Základem je tedy snaha o "řešení problému". V reálném světě si úkoly a systémy rozkládáme na více menších úkolů či podsystémů. Vytváříme si v hlavě abstraktní model situace, kterou chceme řešit. Programovací jazyk je tak vhodný pro řešení daného problému, jak dobře dokáže svými prostředky vyjádřit tento abstraktní model. Na něco se hodí funkce, na něco se hodí objekty (a třídy), na něco se hodí moduly. OO návrh a jazyky pro OOP jsou vhodné tehdy, když o řešeném celku uvažujeme jako o větším systému tvořeném z menších spolupracujících podsystémů. Modul se chová podobně, jako instance třídy s charakterem singletonu. Pokud potřebuji singleton, pak je použití modulu jednodušší, než vytváření třídy a složité zajišťování toho, že se vytvoří (a bude sdílet) jediná instance této třídy. To ale neříká nic o tom, jak složitou funkčnost modul implementuje. Modul poskytuje jednoduché rozhraní v podobě zveřejněných funkcí a případně zveřejněných proměnných. Nezveřejněná funkčnost může být implementována jakkoliv -- podle toho, co je z hlediska řešeného problému nejvýhodnější. P. > >2013/1/15 Petr Přikryl >> > Od: "Roman Beno" >> ... >> 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. _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
