#python #function #static #attributes #callback
#python #функция #статический #атрибуты #обратный вызов
Вопрос:
Следующее, похоже, недопустимо в python 3:
class A:
callback = A.callback_function
def callback_function(self):
pass
Вы получите сообщение об ошибке, в котором говорится, что тип ‘A’ не определен. Это потому, что на ‘A’ нельзя ссылаться в нем самом? Могу ли я в любом случае достичь функциональности такого типа?
Что я пытаюсь сделать, это что-то вроде этого: у меня есть базовый класс:
class Base:
callback = Base.ignore
def ignore(self):
pass
def some_other_function(self):
self.callback()
В подклассе я хотел бы установить другую функцию обратного вызова:
class Derived(Base):
callback = Derived.special_function
def special_function(self):
do_stuff()
Ответ №1:
Ну, вы можете просто назвать свою функцию callback
, и это будет точно так же, но если вы действительно настаиваете на этом:
class A:
def callback_function(self): pass
callback = callback_function