[python] nevznik objektu

David Rohleder davro na ics.muni.cz
Čtvrtek Březen 18 17:41:42 CET 2010


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 <davro na ics.muni.cz>



Další informace o konferenci Python