[Tutor] Challenge supporting custom deepcopy with inheritance

Alan Gauld alan.gauld at btinternet.com
Mon Jun 1 22:55:38 CEST 2009


"W W" <srilyk at gmail.com> wrote
>> class C:
>>    @constructor
>>    def LoadFromFile(fname, count): ...
>>    @constructor
>>    def Create(valueTuple):...
>>
>> Personally I prefer the Delphi style sincve it makes the constructor
>> call explicit and adds to the documentation.
>>
>> Alan G
>>
>
> That does make it problematic... although I suppose checking the type 
> would
> be a workaround - still, not simple or beautiful. Has this been 
> introduced
> as a PEP?

Type checking is the problem. Until Python can distinguish methods based
on types (which introduces other issues)  thisi is difficult with the 
C/Java style.

We can fake the Delphi style by using a default constructor and then just
calling the "constructors" after initialisation:

class C:
         def __init__(): pass
        @constructor
        def LoadFromFile(fname, count): ...
       @constructor
       def Create(valueTuple):...

c = C()
c.LoadFromFile(fn, cnt)

But its two lines not one... :-(

And so far as I know it has not been PEPd although I'm sure it has
been discussed.

-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/ 




More information about the Tutor mailing list