[python] instancia triedy
Radek Kanovsky
rk na dat.cz
Čtvrtek Duben 15 15:14:34 CEST 2004
On Wed, Apr 07, 2004 at 02:06:19PM +0200, Miroslav Biňas wrote:
> zdravim
>
> chcel by som sa opytat, ci je mozne spravit nieco take, ako:
>
> spravim instanciu triedy, ktora potrebuje jeden vstupny argument. ten sa
> preda konstruktoru. ked ten pride na to, ze ten argument je None, tak by
> som celkom rad bol, keby instancia nebola vytvorena. ako je to mozne
> spravit bez riesenia typu:
>
> if( arg != None ):
> tt = asdf( arg )
> else:
> tt = None
Tohle by melo fungovat od verze 2.2:
class Klass (object) :
def __new__ (klass, arg=None) :
if arg is None :
return None
return object.__new__(klass, arg)
def __init__ (self, arg) :
self.arg = arg
def __repr__ (self) :
return "Klass(%r)" % self.arg
# Pouziti
k1, k2 = Klass(None), Klass(12)
print k1, k2
Radek Kaňovský
Další informace o konferenci Python