python self

Python-¿Está bien pasar uno mismo a una función externa?



matplotlib python 3 (1)

No hay problema con eso en absoluto: el self es un objeto como cualquier otro y puede usarse en cualquier contexto en el que un objeto de su tipo / comportamiento sea bienvenido.

En Python, como lo ejemplifica la biblioteca estándar, las instancias de self passed to functions ( and also to methods , and even operators ) all the time .

Tengo una clase, A, que es heredada por un grupo de otras clases. Algunas de estas tienen algunas funciones que son similares y sería bueno tener esas funciones definidas en otro lugar y las clases que las necesitan. Pero esas funciones llaman funciones definidas en la súper clase.

class A(): def imp_func(*args): # called by the child class functions Class B(A): def common_func(self): # some stuff self.imp_func(*args)

Así que he creado mis funciones de ayuda que toman el self object como un argumento y puedo llamar a imp_func desde dentro de las funciones de ayuda.

def helper_func(obj, some_args): # some common stuff obj.imp_func(*args) class B(A): def common_func(self): # unique stuff helper_func(self, some_args)

Esto resuelve el problema.

¿Pero debería estar haciendo esto? ¿Es esto pitónico?