Mercurial > slides-fragments
changeset 134:b08309bc729e
created
| author | 127.0.0.1 |
|---|---|
| date | Wed, 29 Jan 2014 20:02:53 +0100 |
| parents | eb776feaf067 |
| children | a927dcf6deb6 |
| files | multiple%20constructors |
| diffstat | 1 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multiple%20constructors Wed Jan 29 20:02:53 2014 +0100 @@ -0,0 +1,24 @@ +**Wrong:** +{{{#!python +class C(object): + def __init__(self, source): + if isinstance(source, basestring): + source = source.split(',') + elif isinstance(source, list): + source = source + elif isinstance(source, dict): + source = source.values() + ... +}}} + +**Better:** +{{{#!python + def __init__(self, source_list): + ... + @classmethod + def from_string(cls, source_string): + return cls(source_string.split(',')) + @classmethod + def from_dict(cls, source_dict): + return cls(source_dict.values()) +}}} \ No newline at end of file
