Métodos a detalle
Resumamos todos los hechos relacionados con el uso de métodos en las clases de Python.
Como ya sabes, un método es una función que está dentro de una clase.
Hay un requisito fundamental: un método está obligado a tener al menos un parámetro (no existen métodos sin parámetros; un método puede invocarse sin un argumento, pero no puede declararse sin parámetros).
El primer (o único) parámetro generalmente se denomina self
. Te sugerimos que lo sigas nombrando de esta manera, darle otros nombres puede causar sorpresas inesperadas.
El nombre self sugiere el propósito del parámetro - identifica el objeto para el cual se invoca el método.
Si vas a invocar un método, no debes pasar el argumento para el parámetro self
- Python lo configurará por ti.
El ejemplo en el editor muestra la diferencia.
El código da como salida:
método
Toma en cuenta la forma en que hemos creado el objeto - hemos tratado el nombre de la clase como una función, y devuelve un objeto recién instanciado de la clase.
Si deseas que el método acepte parámetros distintos a self
, debes:
- Colocarlos después de
self
en la definición del método. - Pasarlos como argumentos durante la invocación sin especificar
self
.
Justo como aqui:
class conClase:
def metodo(self, par):
print("método:", par)
obj = conClase()
obj.metodo(1)
obj.metodo(2)
obj.metodo(3)
El código da como salida:
método: 1
método: 2
método: 3