Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
Mixins example in Python

Mixins allow you to add ("Mix in") code - usually shared code - from one class or module into another. They're a great way of providing great "light weight" multiple inheritance - I wrote about that [here] recently, and provided an example in Ruby to show how it works.

Mixins can also be used in Python - see [full example]. The "trick" here is to define the code to be mixed in as complete new classes, and to use Python's dynamic object structure to add in the new class by updating its __bases__ member:
  pubtrans.__bases__ += (label,)

You may compare that example with mixins to a full multiple inheritance example in Python which uses the same classes - I provided that other full source [here] and wrote about it [here].
(written 2010-04-14)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y112 - Python - Objects - Intermediate
  [4344] Python base and inherited classes, test harness and unit testing - new examples - (2014-12-07)
  [4094] Python Properties - how and why - (2013-05-18)
  [4028] Really Simple Class and Inheritance example in Python - (2013-03-04)
  [3887] Inheritance, Composition and Associated objects - when to use which - Python example - (2012-10-10)
  [3796] Backquote, backtic, str and repr in Python - conversion object to string - (2012-07-05)
  [3524] Metaclasses (Python) and Metatables (Lua) - (2011-11-17)
  [3472] Static variables in functions - and better ways using objects - (2011-10-10)
  [3442] A demonstration of how many Python facilities work together - (2011-09-16)
  [3002] A list of special method and attribute names in Python - (2010-10-17)
  [2994] Python - some common questions answered in code examples - (2010-10-10)
  [2905] Defining static methods in Python - (2010-08-05)
  [2889] Should Python classes each be in their own file? - (2010-07-27)
  [2785] The Light bulb moment when people see how Object Orientation works in real use - (2010-05-28)
  [2764] Python decorators - your own, staticmethod and classmethod - (2010-05-14)
  [2720] Multiple inheritance in Python - complete working example - (2010-04-14)
  [2717] The Multiple Inheritance Conundrum, interfaces and mixins - (2010-04-11)
  [2693] Methods that run on classes (static methods) in Python - (2010-03-25)
  [2485] How do I set up a constant in Python? - (2009-10-31)
  [2409] TypeError: super() argument 1 must be type, not classobj (Python) - (2009-09-18)
  [2368] Python - fresh examples of all the fundamentals - (2009-08-20)
  [1819] Calling base class constructors - (2008-10-03)
  [1661] Equality, sameness and identity - Python - (2008-05-31)
  [1644] Using a utility method to construct objects of different types - Python - (2008-05-17)
  [1517] Python - formatting objects - (2008-01-24)
  [1217] What are factory and singleton classes? - (2007-06-04)
  [1146] __new__ v __init__ - python constructor alternatives? - (2007-04-14)
  [964] Practical polymorphism in action - (2006-12-04)
  [903] Pieces of Python - (2006-10-23)
  [831] Comparison of Object Oriented Philosophy - Python, Java, C++, Perl - (2006-08-13)
  [656] Think about your design even if you don't use full UML - (2006-03-24)
  [477] Class, static and unbound variables - (2005-10-25)
  [383] Overloading of operators on standard objects in Python - (2005-07-19)
  [296] Using a Python dictionary as a holder of object attributes - (2005-04-30)


Back to
Regular Expressions in Python
Previous and next
or
Horse's mouth home
Forward to
Returning multiple values from a function - Lua
Some other Articles
Every cloud has a silver lining
How do our tactics help us meet the strategy, for the greater good?
Escapee Grandparents welcome - Henfield and Melksham
Returning multiple values from a function - Lua
Mixins example in Python
Regular Expressions in Python
Traffic lights in Python
Python - access to variables in the outer scope
4343 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2014: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 899360 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/2722_Mix ... ython.html • PAGE BUILT: Thu Sep 18 15:30:25 2014 • BUILD SYSTEM: WomanWithCat