lo que es self en python ?

Ultima actualización en domingo 13º mar. 2022

Self Python

self python que es.En la programación orientada a objetos, cada vez que definimos métodos para una clase, usamos self como primer parámetro en cada caso. Veamos la definición de una clase llamada Me.

metodo self python

	class Me:
    def __init__(self, nombre, laEdad):
        self.nombre = nombre
        self.laEdad = laEdad

    def info(self):
        print(f"Mi nombre es {self.nombre}. Yo soy {self.laEdad} Años.")
	

Python Self

En este caso, todos los métodos, incluidos los init, tienen el primer parámetro como self.La palabra clave self se utiliza para representar una instancia (objeto) de la clase dada. En este caso,

¿Por qué se define explícitamente cada vez?

Incluso cuando entendemos el uso de self, todavía puede parecer extraño, especialmente para los programadores que provienen de otros lenguajes, que self se pase como un parámetro explícitamente cada vez que definimos un método.

para que sirve self en python

	class Punto(object):
    def __init__(self,x = 0,y = 0):
        self.x = x
        self.y = y

    def distancia(self):
        """Encontrar distancia desde el origen"""
        return (self.x**2 + self.y**2) ** 0.5
	
	Punto(6,8).distancia() # 10.0
	

Self se puede evitar

A estas alturas ya tiene claro que el objeto (instancia) en sí se pasa como el primer argumento, automáticamente. Este comportamiento implícito se puede evitar al crear un método static.

que significa self en python

	class A(object):

    @staticmethod
    def stat_meth():
        print("Mira que no se pasó ningún self")
	

Aquí, code>@staticmethod</code es un decorador de funciones que hace que stat_meth() estático.

	A().stat_meth()  # Mira que no se pasó ningún self
	

Self Está aquí para quedarse

El Self explícito no es exclusivo de Python. No hay una declaración de variable explícita en Python. Entran en acción en la primera asignación. El uso de self facilita la distinción entre atributos (y métodos) de instancia de variables locales

	class Punto(object):

    def __new__(cls,*args,**kwargs):
        print(cls)
        print(args)
        print(kwargs)

        # crear nuestro objeto y devolverlo
        obj = super().__new__(cls)
        return obj

    def __init__(self,x = 0,y = 0):
        self.x = x
        self.y = y