Definición de atributos de clase y métodos

Cualquier variable enlazada a una clase es un atributo de clase. Cualquier función definida en una clase es un método. Los métodos reciben como primer argumento una instancia de la clase, que convencionalmente se denomina self. Por ejemplo, para definir algunos atributos de clase y métodos, puede entrar el siguiente código:

class MyClass
    attr1 = 10        #class attributes
    attr2 = "hello"

    def method1(self):
        print MyClass.attr1   #reference the class attribute

    def method2(self):
        print MyClass.attr2   #reference the class attribute

    def method3(self, text):
        self.text = text        #instance attribute
        print text, self.text   #print my argument and my attribute

    method4 = method3   #make an alias for method3

Dentro de una clase, debe cualificar todas las referencias a los atributos de clase con el nombre de clase; por ejemplo, MyClass.attr1. Todas las referencias a los atributos de la instancia deben cualificarse con la variable self, por ejemplo, self.text. Fuera de la clase, debe cualificar todas las referencias a los atributos de clase con el nombre de clase (por ejemplo, MyClass.attr1) o con una instancia de la clase (por ejemplo, x.attr1, donde x es una instancia de la clase). Fuera de la clase, todas las referencias a las variables de la instancia deben cualificarse con una instancia de la clase, por ejemplo, x.text.