Así que sé que en python todo es un 'objeto', lo que significa que se puede pasar como argumento a un método. Pero estoy tratando de entender cómo funciona esto exactamente. Así que estaba tratando el siguiente ejemplo:método de python como argumento
class A:
def __init__(self):
self.value = 'a'
def my_method(self)
print self.value
class B:
def __init__(self):
self.values = 'b'
def my_method(self, method):
method()
a = A()
b = B()
b.my_method(a.my_method)
Ahora por primera vez este fue escrito sólo para ver cómo funcionan las cosas. Sé que debería, por ejemplo, verificar si el argumento my_method
es invocable. Ahora mi pregunta es:
¿Cómo se transmite exactamente el método aquí? Me refiero a que la salida que estoy recibiendo es 'a', así que supongo que cuando se pasa un método de objeto como parámetro, ¿cuál es el objeto real? En este caso, cuando paso a.my_method
, ¿también se pasa la instancia a
?
Si está trabajando con Python 2, use 'clase A (objeto):' en lugar de 'clase A:' para obtener "clases de estilo nuevo" que generalmente son mejores y con qué debería trabajar. –