¿Por qué acceder a la variable de clase dentro de la clase necesita "self" en Python? [duplicar]
Posible duplicado:
Python "auto" explicado
Estoy aprendiendo Python y tengo una pregunta, más teórica que práctica, sobre el acceso a las variables de clase del método de esta clase.
Por ejemplo tenemos:
class ExampleClass:
x = 123
def example_method(self):
print(self.x)
¿Por qué es necesario escribir exactamenteself.x
, No solox
? x
pertenece al espacio de nombres de la clase, y el método que lo usa también le pertenece. ¿Qué me estoy perdiendo? ¿Qué razón hay detrás de ese estilo?
En C ++ puedes escribir:
class ExampleClass {
public:
int x;
void example_method()
{
x = 123;
cout << x;
};
};
¡Y funcionará!