Python-можно ли передать self во внешнюю функцию
у меня есть класс, который наследуется куча других классов. Некоторые из них имеют несколько функций, которые похожи, и было бы неплохо иметь эти функции, определенные где-то еще и вызываемые классами, которые в них нуждаются. Но эти функции вызывают функции, определенные в супер классе.
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)
поэтому я создал свои вспомогательные функции, которые принимают self object
в качестве аргумента, и я могу назвать imp_func
изнутри помощником функции.
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)
это решает проблему.
но должен ли я это делать? Это питон?
1 ответов
С этим нет никаких проблем -self
является объектом, как и любой другой, и может использоваться в любом контексте, где объект его типа/поведения будет приветствоваться.
в Python, как показано в стандартной библиотеке, экземпляры self
get принят to функции (и и to методы, и даже операторы) все the времени.