auto en la clase de Python

self representa la instancia de la clase. Al usar el «yo» podemos acceder a los atributos y métodos de la clase en python. Vincula los atributos con los argumentos dados.
La razón por la que necesita usar uno mismo. es porque Python no usa la sintaxis @ para referirse a atributos de instancia. Python decidió hacer métodos de una manera que hace que la instancia a la que pertenece el método se pase automáticamente, pero no se reciba automáticamente: el primer parámetro de los métodos es la instancia a la que se llama el método.

De una manera más clara, puede decir que SELF tiene las siguientes características:

El yo siempre está apuntando al objeto actual.

Python3

#it is clearly seen that self and obj is referring to the same object
 
class check:
    def __init__(self):
        print("Address of self = ",id(self))
 
obj = check()
print("Address of class object = ",id(obj))
 
# this code is Contributed by Samyak Jain
Producción

Address of self =  140124194801032
Address of class object =  140124194801032

Otro ejemplo de uso de SELF:

Python3

# Write Python3 code here
 
class car():
     
    # init method or constructor
    def __init__(self, model, color):
        self.model = model
        self.color = color
         
    def show(self):
        print("Model is", self.model )
        print("color is", self.color )
         
# both objects have different self which
# contain their attributes
audi = car("audi a4", "blue")
ferrari = car("ferrari 488", "green")
 
audi.show()     # same output as car.show(audi)
ferrari.show()  # same output as car.show(ferrari)
 
# Behind the scene, in every instance method
# call, python sends the instances also with
# that method call like car.show(audi)
Producción

Model is audi a4
color is blue
Model is ferrari 488
color is green

Self es el primer argumento que se pasa en Constructor y Método de instancia.

Self debe proporcionarse como un primer parámetro para el método y el constructor de la instancia. Si no lo proporciona, se producirá un error.

Python3

# Self is always required as the first argument
class check:
    def __init__():
        print("This is Constructor")
 
object = check()
print("Worked fine")
 
 
# Following Error is produced if Self is not passed as an argument
Traceback (most recent call last):
  File "/home/c736b5fad311dd1eb3cd2e280260e7dd.py", line 6, in <module>
    object = check()
TypeError: __init__() takes 0 positional arguments but 1 was given
   
   
  # this code is Contributed by Samyak Jain

Self es una convención y no una palabra clave de Python.

self es un parámetro en Instance Method y el usuario puede usar otro nombre de parámetro en su lugar. Pero es recomendable usar self porque aumenta la legibilidad del código, y también es una buena práctica de programación.

Python3

# Write Python3 code here
 
class this_is_class:
    def __init__(in_place_of_self):
        print("we have used another "
        "parameter name in place of self")
         
object = this_is_class()
Producción

we have used another parameter name in place of self

Publicación traducida automáticamente

Artículo escrito por gyanendra371 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *