Explorar o código

Add chaining method pattern

Thinh Tran %!s(int64=11) %!d(string=hai) anos
pai
achega
687bcb25a0
Modificáronse 1 ficheiros con 33 adicións e 0 borrados
  1. 33 0
      chaining_method.py

+ 33 - 0
chaining_method.py

@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+class Person(object):
+
+    def __init__(self, name, action):
+        self.name = name
+        self.action = action
+
+    def do_action(self):
+        print self.name, self.action.name,
+        return self.action
+
+class Action(object):
+
+    def __init__(self, name):
+        self.name = name
+
+    def amount(self, val):
+        print val,
+        return self
+
+    def stop(self):
+        print 'then stop'
+
+if __name__ == '__main__':
+
+    move = Action('move')
+    person = Person('Jack', move)
+    person.do_action().amount('5m').stop()
+
+#===== Output =====
+# Jack move 5m then stop