Skor by som to urobil cez vynimku - konstruktor v pripade zlej IPcky vyvola nejaku vynimku a objekt vytvoris takto:
try: ipaddr = IP("192.1023.neco.1") except tvoja_vynimka: print "zadavas blby vstup" Ak 'ipaddr' potrebujes mat na None aj dalej v kode, tak este do except prihod: ipaddr = None >-----Pôvodná správa----- >Od: David Rohleder [mailto:da...@ics.muni.cz] >Komu: python@py.cz >Predmet: [python] nevznik objektu > > >Ahoj, > >je možné, aby nevznikl objekt, který zrovna vytvářím? Příklad - mám >třídu typu IP adresa, v konstruktoru předávám řetězec IPadresy. Chtěl >bych, aby v případě, že IP adresa není validní, objekt vůbec nevznikl. >Tj. aby konstruktor vrátil None: > >>>> ipaddr = IP("192.1023.neco.1") >>>> ipaddr >None > >chtěl jsem pak třeba udělat: > >if not ipaddr: >print "zadavas blby vstup" > > > >chtěl jsem to vyřešit asi takto: > >class IP(object): >def __init__(self, IPadresa): >..... >if chyba: return None > > > >Jenomže konstruktor vrací vždycky None, tj. touto cestou to nejde. > >Zatím jediné, co mne napadlo, je vyřešit to pomocí výjimky, tj.např > >try: >ipaddr = IP("192.168.34536.45") >except ValueError: >ipaddr = None > >Ale myslím, že kdyby objekt vůbec nevznikl, tak by to bylo lepší. Jde >to, nebo to nejde? > >D. > > >-- >David Rohleder <da...@ics.muni.cz> > >_______________________________________________ >Python mailing list >Python@py.cz >http://www.py.cz/mailman/listinfo/python _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python