On Fri, 07 Nov 2008 17:23:21 +0100, Mr.SpOOn wrote:

> On Fri, Nov 7, 2008 at 4:16 PM, Duncan Booth
> <[EMAIL PROTECTED]> wrote:
>> There is a really big advantage to being explicit in this situation:
>> you no longer have to make sure that all your constructors use a unique
>> set of types. Consider:
>>
>> class Location(object):
>>    def __init__(self, lat, long): ...
>>
>>    @classmethod
>>    def from_city(name): ...
>>
>>    @classmethod
>>    def from_postcode(name): ...
>>
>> 'from_string' is a bad name here for your factory method: you should
>> try to make it clear what sort of string is expected.
> 
> Yes, that's what I was going to do.
> But, for example, I have a parse method to create such object from a
> string. So I need to call this method to actually create the object. Now
> I must put the code of the parse method into the @classmethod
> constructor.

You can still spread it over other `classmethod()`\s or `staticmethod()`s 
or even plain functions at module level.

> What if I need the parse method to be called in other parts of the
> program?

I don't understand!?  Then you call it from those other parts.

Ciao,
        Marc 'BlackJack' Rintsch
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to