[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