Paulo da Silva escreveu:
> Alex Martelli escreveu:
>> Paulo da Silva <[EMAIL PROTECTED]> wrote:
> ....
> 
>> E.g.:
>>
>> class C1(object):
>>     def __new__(cls, xxx):
>>         if xxx: return type.__new__(cls, xxx)
>>         else: return C1.load(xxx)
>>     @staticmethod
>>      def load(xxx): return ...whatever...
>>      def __init__(self, xxx):
>>          if hasattr(self, 'foo'): return
>>          self.foo = 'foo'
>>          self.bar = 'bar'
>>
> 
> 
> Just for a better understanding ...
> Can I do this?
> 
> class C1(object):
>     def __new__(cls, xxx):
>         if xxx:
>               cls.foo='foo'
>               cls.bar='bar'
>               return type.__new__(cls, xxx)
This does not work(!) at least for python 2.4.3.

>         else:
>               return C1.load(xxx)
>     @staticmethod
>     def load(xxx): return ...whatever...
>     # OMMIT THE __init__
>     # or
>     def __init__(self, xxx):
>         pass

I needed return cls and put the __init__ stuff here.
Is this the best practice?

Thanks.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to