Since Python is a object oriented programming language then you can use things like classes to define a object, a class is a bunch of methods that act on the data that is stored within the class itself. You can store data within the class, but unlike c++/java/c# etc, there is no private/public/protected, everything is public accessible.
In the example below, the class constructor is called (__init__ method) and the first parameter is the class object itself, which is why it is there and for many reasons why it is called self as a variable name.
# self means the object itself. class mysimpleclass : __myvar = 0 def __init__(self,value = 0) : self.__myvar = value def printValue(self) : print self.__myvar simple = mysimpleclass(5) simple.printValue()
the printValue method just does that, it will print the value that is sorted within the class object and here is the output
if you did not put in the self in the example above for printing out the class object variable __myvar as below
class mysimpleclass .... .... def printValue() : print __myvar
the error would be
NameError: global name '_mysimpleclass__myvar' is not defined
because the interrupter is looking for a global variable and not a variable attached to that object.