table attributes for the methods attributes description __doc__ documentation string __name__ method name __class__ name of the class where method is defined __func__ function object implementing the method __self__ instance associated with the method (none if unbound classes and instances are callable class objects and instances operate as callable objects class object is created by the 'classstatement and is called as function in order to create new instance the arguments passed in the to the function are passed to __init__(methodwhich initialize the newly created instance an instance can emulate the function if it defines the special method __call__(if method is defined for an instance ' 'then methodname(argsactually invokes the method methodname __call__(argsclass foo(object)def __init__(selfval)self value val def addvalue(selfnum)print(self value numf foo( class is called as function to create new instance addvalue( addvalue __call__( addvalue __call__( classtypes and instances when we define classthen the class definition produces an object of type 'type'as shown below table shows the various attributes available for the classclass foo()pass type(footable class attributes attributes description __doc__ documentation string __name__ class name __bases__ tuple of base classes __dict__ dictionary holding the class methods and variables __module__ module name in which the class is defined __abstractmethods__ set of abstract method names the instance of the class has some special attributes shown in table builtin types for representing program structure