Un método enlazado es el que depende de la instancia de la clase como primer argumento. Pasa la instancia como el primer argumento que se utiliza para acceder a las variables y funciones. En Python 3 y versiones más recientes de python, todas las funciones de la clase son métodos vinculados de forma predeterminada.
Entendamos este concepto con un ejemplo:
# Python code to demonstrate # use of bound methods class A: def func(self, arg): self.arg = arg print("Value of arg = ", arg) # Creating an instance obj = A() # bound method print(obj.func)
Producción:
< bound method A.func of <__main__.A object at 0x7fb81c5a09e8>>
Aquí,
obj.func(arg) is translated by python as A.func(obj, arg).
La instancia obj
se pasa automáticamente como primer argumento a la función llamada y, por lo tanto, el primer parámetro de la función se utilizará para acceder a las variables/funciones del objeto.
Veamos otro ejemplo del método Bound.
# Python code to demonstrate # use of bound methods class Car: # Car class created gears = 5 # a class method to change the number of gears @classmethod def change_gears(cls, gears): cls.gears = gears # instance of class Car created Car1 = Car() print("Car1 gears before calling change_gears() = ", Car1.gears) Car1.change_gears(6) print("Gears after calling change_gears() = ", Car1.gears) # bound method print(Car1.change_gears)
Producción:
Car1 gears before calling change_gears() = 5 Gears after calling change_gears() = 6 <bound method Car.change_gears of <class '__main__.Car'>>
El código anterior es un ejemplo de un método de clase . Un método de clase es como un método enlazado excepto que la clase de la instancia se pasa como argumento en lugar de la instancia misma. Aquí, en el ejemplo anterior, cuando llamamos Car1.change_gears(6)
, la clase ‘Car’ se pasa como primer argumento.
Publicación traducida automáticamente
Artículo escrito por Soham_Lanke y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA