فهرست منبع

better prototype example

Sakis Kasampalis 11 سال پیش
والد
کامیت
ca9e299c73
1فایلهای تغییر یافته به همراه15 افزوده شده و 11 حذف شده
  1. 15 11
      prototype.py

+ 15 - 11
prototype.py

@@ -23,23 +23,27 @@ class Prototype:
         obj.__dict__.update(attr)
         return obj
 
+class A:
+    def __init__(self):
+        self.x = 3
+        self.y = 8
+        self.z = 15
+        self.garbage = [38, 11, 19]
+
+    def __str__(self):
+        return '{} {} {} {}'.format(self.x, self.y, self.z, self.garbage)
 
-def main():
-    class A:
-        pass
 
+def main():
     a = A()
     prototype = Prototype()
-    prototype.register_object('a', a)
-    b = prototype.clone('a', a=1, b=2, c=3)
-
-    print(a)
-    print(b.a, b.b, b.c)
-
+    prototype.register_object('objecta', a)
+    b = prototype.clone('objecta')
+    c = prototype.clone('objecta', x=1, y=2, garbage=[88, 1])
+    print([str(i) for i in (a, b, c)])
 
 if __name__ == '__main__':
     main()
 
 ### OUTPUT ###
-# <__main__.main.<locals>.A object at 0x7fc1d23272d0>
-# 1 2 3
+# ['3 8 15 [38, 11, 19]', '3 8 15 [38, 11, 19]', '1 2 15 [88, 1]']