Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Panic0 en 28 Junio 2021, 19:07 pm



Título: Self python
Publicado por: Panic0 en 28 Junio 2021, 19:07 pm
Hola, trabajando ya desde hace un buen tiempo con python (específicamente con poco) me di cuenta que al momento de crear una clase (observando otros código) hay veces que usan self y en otras cosas no lo usan.

Me gustaría saber en qué momentos le tengo que pasar self a cada cosa y porque



Gracias y buen día u noche!


Título: Re: Self python
Publicado por: DtxdF en 28 Junio 2021, 19:32 pm
Hola @Panic0

self no es más que una convención, y es básicamente la instancia de la clase para la cual se leerán las propiedades o directamente se llamarán a los métodos.

Intentalo tú mismo: crea una clase y no uses self; usa cualquier otro nombre y verás que tendrás el mismo efecto.

~ DtxdF


Título: Re: Self python
Publicado por: Panic0 en 28 Junio 2021, 20:07 pm
Hola @Panic0

self no es más que una convención, y es básicamente la instancia de la clase para la cual se leerán las propiedades o directamente se llamarán a los métodos.

Intentalo tú mismo: crea una clase y no uses self; usa cualquier otro nombre y verás que tendrás el mismo efecto.

~ DtxdF

Bien,ya entendí muchísimas gracias!


Título: Re: Self python
Publicado por: Danielㅤ en 28 Junio 2021, 20:44 pm
Hola, self hace referencia a la misma clase, self es como un puntero en otros lenguajes y puede usarse por ejemplo para tener varios nombres iguales en distintas clases, por ejemplo:

Clase 1:
    self.cantdadTotal = 100

Clase 2:
    self.cantidadTotal = 2500

Clase 3:
    self.cantidadTotal = 80240

En muchos códigos de Python verás algo como esto por ejemplo:

Class DatosAlumnos:
    def __init__(self, name, surname, address, phone):
        self.name = name
        self.surname = surname
        self.address = address
        self.phone = phone

Eso generalmente lo hacen para manejar las variables como haciendo referencia a su misma clase por eso el uso de self y además se pasan las 4 variables de esa forma para no usar variables globales.

Más información aquí:

https://es.stackoverflow.com/questions/202588/como-funciona-self-en-python

https://www.google.com/search?q=Python+self


Saludos