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
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)
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()
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