Michal Vyskocil píše >David Rohleder píše >> Petr Messner píše >> >> Možná jsem prostě jenom příliš staromódní [...] ... >> > - nevolat konstruktor (tedy nevytvářet objekt), ale volat funkci, >> > která sama vytvoří objekt, nebo vrátí None - podle mě nejlepší řešení ... >> To zní zajímavě, ale moc mně to nezapadá do takového toho "objektového" >> pohledu na svět. Nutno přiznat, že je to asi celkem jedno, z venku >> modulu to vypadá stejně jako přímo ten konstruktor objektu. ... >No tak to nemusí být funkce, ale metoda třídy >Je to sice trošku Javovský přístup, ale aspoň >to nezačíná na class IPFactory :-)
Já bych se přimlouval za to být trochu staromódní a nesnažit se všechno převrátit na objekt. Staré dobré funkce jsou zde tím nejjednodušším vyjádřením uvedeného záměru. Snažit se zabalit funkci do podoby něčeho "vznešenějšího" mi připadá zbytečné. Pokud třída neobsahuje žádnou členskou proměnnou a není určena k dědění, pak psát kód do podoby její metody třídy mi připadá ve srovnání s prostou funkcí obtížně zdůvodnitelné. KISS -- Keep It Small and Stupid Taková třída by mohla přinést navíc pouze svázání více souvisejících metod dohromady. Třída, ze které se nevytvářejí instance (protože není nutné zachycovat vnitřní stav) je degradací na pouhý prostor jmen, do kterého jsou umístěny prosté funkce. V Pythonu vyjádříme prostor jmen formou odděleného modulu -- když už to musí být. Podle mého názoru funkce a objektový pohled na věc spolu nijak nebojují. pepr
_______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python