Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
Python and Tcl - public course schedule [here]
Private courses on your site - see [here]
Please ask about maintenance training for Perl, PHP, Lua, etc
 
Class, static and unbound variables

In Object Oriented programming, you'll have certain named blocks of code (usually known as methods) that you can perform on specific objects (type A), and others that you can perform on all the objects of a particular type (type B).

Example.

If I had a class called sandwich, I might have one method called getFilling and another called getBread which return me information as to whether a particular sandwich is Beef or Cheese, and whether it's on brown or white bread. These methods are both Type A as their actions will vary depending on which sandwich they're run.

However, if I have a method called getCount that returns me a total of the number of sandwiches I have, then it's going to return me the same value whether I call it on my "Beef and Stilton on White", or on a Plain cheese sandwich in brown bread. So that's an example of a Type B.

Type B methods are sometimes known as Class methods since they apply to the class as a whole. You'll also find that Java programmers refer to them as static methods, and Python fans call them unbound methods since they're not attached (bound) to any particular single instance of an object.

Type A methods, then, may be known as Object methods as they apply to an individual object, dynamic methods as they change in behaviour depending on which particular object they're called on, or bound methods because their behaviour is bound to a certain object.

(written 2005-10-25, updated 2011-08-18)

 
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
J706 - Java - Objects and Classes
  [4422] Objects - from physical to virtual or abstract - Java - (2015-02-10)
  [4413] Binomial Coefficient (Pascal Triangle) objects in Java - (2015-02-03)
  [2651] Calculation within objects - early, last minute, or cached? - (2010-02-26)
  [2616] Defining a static method - Java, Python and Ruby - (2010-02-01)
  [2422] Looking inside Java classes - javap and javadoc - (2009-09-25)
  [2169] When should I use OO techniques? - (2009-05-11)
  [1925] Introduction to Object Oriented Programming - (2008-12-06)
  [1906] Long, Longer, Longest in Java - (2008-11-25)
  [1500] First Class Java. First step and moving forward. - (2008-01-10)
  [1296] An example of Java Inheritance from scratch - (2007-08-08)
  [1163] A better alternative to cutting and pasting code - (2007-04-26)
  [96] Variable Scope - (2004-10-22)

Q909 - Object Orientation and General technical topics - Object Orientation: Composite Objects
  [4450] Deciding whether to use parameters, conditional statements or subclasses - (2015-03-05)
  [4394] Philosophy behind object design - and how I applied in to a Java example - (2015-01-14)
  [4377] Designing a base class and subclasses, and their extension, in C++ - (2015-01-01)
  [3979] Extended and Associated objects - what is the difference - C++ example - (2013-01-18)
  [3609] How do classes relate to each other? Associated Classes - (2012-02-12)
  [3251] C++ - objects that are based on other objects, saving coding and adding robustness - (2011-04-17)
  [3152] Jargon busting - (2011-01-30)
  [3142] Private and Public - and things between - (2011-01-22)
  [2922] Getting the OO design write - with PHP a example - (2010-08-14)
  [2865] Relationships between Java classes - inheritance, packaging and others - (2010-07-10)
  [2641] Object Oriented Programming in PHP - (2010-02-19)
  [2170] Designing a heirarcy of classes - getting inheritance right - (2009-05-11)
  [1348] Screw it or Glue it? Access to Object variables - a warning - (2007-09-12)
  [1345] Perl and Shell coding standards / costs of an IT project - (2007-09-11)
  [592] NOT Gone phishing - (2006-02-05)

Y106 - Object Oriented Python
  [4721] When to check an object type - Python isinstance example - (2016-11-03)
  [4650] Why populate object with values as you construct them? - (2016-02-18)
  [4591] From single block to structure and object oriented programming - (2015-12-02)
  [4448] What is the difference between a function and a method? - (2015-03-04)
  [4129] Simple OO demonstration in C++, comparison to Python - (2013-07-01)
  [4028] Really Simple Class and Inheritance example in Python - (2013-03-04)
  [4021] Spike solution, refactored and reusable, Python - Example - (2013-02-28)
  [3947] this or self - what are they, and what is the difference? (Python) - (2012-12-08)
  [3878] From Structured to Object Oriented Programming. - (2012-10-02)
  [3673] Object oriented or structured - a comparison in Python. Also writing clean regular expressions - (2012-03-26)
  [3436] Moving from scripting to Object Orientation in Python - (2011-09-13)
  [3399] From fish, loaves and apples to money, plastic cards and BACS (Perl references explained) - (2011-08-20)
  [3085] Object Oriented Programming for Structured Programmers - conversion training - (2010-12-14)
  [2604] Tips for writing a test program (Ruby / Python / Java) - (2010-01-29)
  [2017] Python - a truly dynamic language - (2009-01-30)
  [1306] Python class rattling around - (2007-08-16)
  [900] Python - function v method - (2006-10-20)
  [834] Python makes University Challenge - (2006-08-15)

Y112 - Python - Objects - Intermediate
  [4719] Nesting decorators - (2016-11-02)
  [4718] Defining an object that is a modified standard type in Python - (2016-11-02)
  [4717] with in Python - examples of use, and of defining your own context - (2016-11-02)
  [4649] Object and Static methods - what is the difference; example in Python 3 - (2016-02-17)
  [4541] Setting up and tearing down with the Python with keyword - (2015-10-16)
  [4449] Spike solution, refactoring into encapsulated object methods - good design practise - (2015-03-05)
  [4410] A good example of recursion - a real use in Python - (2015-02-01)
  [4366] Changing what operators do on objects - a comparison across different programming languages - (2014-12-26)
  [4356] Object factories in C++, Python, PHP and Perl - (2014-12-19)
  [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)
  [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)
  [2722] Mixins example in Python - (2010-04-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)
  [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
May I be politically incorrect?
Previous and next
or
Horse's mouth home
Forward to
Watch what you wear
Some other Articles
PHP upgrade - traps to watch
New look to website
New servlet from old
Watch what you wear
Class, static and unbound variables
May I be politically incorrect?
Where to stay in and near Melksham
Vintage Bus Day
Looking different in town
Are you free on 29th October - Charity ball
4759 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, 88, 89, 90, 91, 92, 93, 94, 95, 96 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).

Comment: "I suppose that the sentence "Type B methods, then, may be ..."

Comment by Anon (published 2011-08-18)
I suppose that the sentence "Type B methods, then, may be known as Object methods as they apply to an individual object, ..." should in fact be "Type A methods, then, may be known as Object methods as they apply to an individual object, ..." [#31005]

You can Add a comment or ranking or edit your own comments

© WELL HOUSE CONSULTANTS LTD., 2019: 404 The Spa • Melksham, Wiltshire • United Kingdom • SN12 6QL
PH: 01225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/477_Clas ... ables.html • PAGE BUILT: Sat May 27 16:49:10 2017 • BUILD SYSTEM: WomanWithCat