Přikryl Petr (středa 24 Březen 2010 13:41:50): > Prakticky žádný jazyk neumožní korektní "nevznik" > objektu -- pokud nedojde k nějaké nízkoúrovňové havárii. Python to prakticky umožňuje, viz můj zřejmě zapadlý post o metodě __new__() Volající _vždy_ dostane nějaké "jméno", ale protože v pythonu je toto jméno jen reference v nějakém jmenném prostoru, nic to neznamená. Klidně to může být reference na už existující objekt, například None.
> V tomto smyslu se přimlouvám za to, aby objetk třídy > IP vznikl vždy, ale aby se bránil použití v případě, > kdy má nepoužitelný obsah Zajímavé, já bych to řešil přesně naopak. Pokud je objekt v _nepoužitelném_ stavu, tak dříve nebo později nějaká výjimka poletí, čili ji radši vystřelím hned. Chci mít backtrace vzniku, ne důsledku. "Ne-objekt" (resp. jiný, nevyžádaný objekt) bych vracel jen pokud by se to dalo považovat za _použitelný_ stav. Třeba v nějakém volitelném inputu by se nezadaná IP adresa vyjádřila jako 0.0.0.0, špatně zadaná IP by vystřelila výjimku. Čili když se jedná o funkčnost, ne o chybu. Tak jako tak jsou to kosmetické detaily. Davidův dotaz se týkal invalidních IP adres, a tam bych rozhodně střílel výjimky. Vrátit pahýl a následně ho porovnat na nenulovost by bylo hezké zjednodušení, kdyby byl svět skutečně tak jednoduchý. Ale časem přijde nějaký další chybový stav, další větev v IFu a pak už to nebude o nic jednodušší než výjimka. A jak jsi zmínil, mnohem náchylnější na opomenutí. BTW ještě mě teď napadl design, kdy by konstruktor vrátil(!) výjimku, volající by si ji prohlédnul a podle přání buď nějak zpracoval nebo raisnul. (zvednul? :-) Nenapadá mě žádný praktický důvod k něčemu tak krkolomnému, ale stojí myslím za zmínku že python unese i (ne)pěkné vylomeniny. _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python