On 23 ún, 08:08, "Petr Přikryl" <prik...@atlas.cz> wrote: > Každý má jiný pohled na věc a jiná očekávání. Podle mého názoru > je přístup typu ','.join(kontejner) možná na první pohled nezvyklý, > ale na druhý pohled je velmi logický. Jde o to, že dokáže spojit > zadaným řetězcem prvky dodané jakýmkoliv kontejnerem, > který podporuje iteraci a který vrací řetězcové prvky.
Zajisté, pro implemetátora má smysl to definovat na jednom místě. Takže by byl dobrý mixin nebo třída která implementuje metody nad iterabilními kontejnery, a ty iterabilní kontejnery podědí nebo si ty metody mixnou. Ale když pracujete tak chcete psat něco jako neco.jeho_kolekce.transform.sort.jeste_transform.join a nemáte chuť psát join(neco.jeho_kolekce.transform.sort.jeste_transform) obzvláště když ten řetězec chcete na tečce dále zpracovávat. neco.jeho_kolekce.transform.sort.jeste_transform.join.strip.jiny_transform.split když to pak přepíšete do závorkové notace, tak je to nečitelné, protože v závorkové notaci se píše doleva a v tečkové doprava. Pár takových závorek v tečkovaném výrazu a nevyzná se v tom ani zvíře které to má v popisu práce. A nebo jinak. Kolikrát v životě jste potřebovali aplikovat join na řetězec v tečce? Já si nepamatuju jediný případ. > A co se týká "volně rozhozených built-in funkcí", ono jich zase > tak strašně moc není. Nezvyklé je to hlavně pro lidi, kteří > pracovali v čistě OO jazyce, který funkce nepodporuje jo, asi tak nějak. Teď by bodl dokument: "Jak zobjektit Python v místech kde se tomu brání, resp. kde to ještě nikdo neudělal." To je asi to nejtrefnější: Přesně v místech kdy Python nesleduje objektové principy to bolí, a strašně. _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python