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