in this examplemeth is known as bound method bound method is callable object that wraps both function (the methodand an associated instance when you call bound methodthe instance is passed to the method as the first parameter (selfthusmeth in the example can be viewed as method call that is primed and ready to go but which has not been invoked using the function call operator (method lookup can also occur on the class itself for exampleumeth foo instance_method umeth( , lookup instance_method on foo call itbut explicitly supply self in this exampleumeth is known as an unbound method an unbound method is callable object that wraps the method functionbut which expects an instance of the proper type to be passed as the first argument in the examplewe have passed fa an instance of fooas the first argument if you pass the wrong kind of objectyou get typeerror for exampleumeth("hello", traceback (most recent call last)file ""line in typeerrordescriptor 'instance_methodrequires 'fooobject but received 'strfor user-defined classesbound and unbound methods are both represented as an object of type types methodtypewhich is nothing more than thin wrapper around an ordinary function object the following attributes are defined for method objectsattribute description _doc_ _name_ _class_ _func_ _self_ documentation string method name class in which this method was defined function object implementing the method instance associated with the method (none if unboundone subtle feature of python is that unbound methods are no longer wrapped by types methodtype object if you access foo instance_method as shown in earlier examplesyou simply obtain the raw function object that implements the method moreoveryou'll find that there is no longer any type checking on the self parameter built-in functions and methods the object types builtinfunctiontype is used to represent functions and methods implemented in and +the following attributes are available for built-in methodsattribute description _doc_ _name_ _self_ documentation string function/method name instance associated with the method (if boundfor built-in functions such as len() _self_ is set to noneindicating that the function isn' bound to any specific object for built-in methods such as appendwhere is list object_ _self_ is set to lib fl ff