 Python allows programmers to define their own types using classes , which are most often used for object @-@ oriented programming . New instances of classes are constructed by calling the class ( for example , SpamClass ( ) or EggsClass ( ) ) , and the classes are instances of the metaclass type ( itself an instance of itself ) , allowing metaprogramming and reflection . 
