Advertisement
Guest User

mixin vs class decorator to add a method

a guest
Jul 1st, 2014
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.70 KB | None | 0 0
  1. # mixin example
  2.  
  3. class HelloMixin(object):
  4.   def sayHello(self):
  5.     return "Hello, %s" % self.name
  6.  
  7.  
  8. class Person(HelloMixin): # might have more base classes
  9.   def __init__(self, name, age):
  10.     self.name = name
  11.     self.age = age
  12.   # ...
  13.  
  14. joe = Person('Joe', 15)
  15. print joe.sayHello()
  16.  
  17.  
  18. # decorated class example
  19.  
  20. def SayingHello(target_class):
  21.   def sayHello(self):
  22.     return "Hello, %s" % self.name
  23.   target_class.sayHello = sayHello  # assign
  24.   return target_class  # which we modified
  25.  
  26. @SayingHello
  27. class Person(HelloMixin): # might have more base classes
  28.   def __init__(self, name, age):
  29.     self.name = name
  30.     self.age = age
  31.  
  32. jane = Person('Jane', 77)
  33. print jane.sayHello()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement