|
@@ -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]']
|