Python:将类方法设置为类属性

时间:2011-06-11 18:20:17

标签: python function static attributes callback

以下似乎在python 3中无效:

class A:
 callback = A.callback_function

 def callback_function(self):
  pass

您将收到错误消息,指出未定义类型“A”。是因为'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 个答案:

答案 0 :(得分:9)

嗯,你可以命名你的函数callback,它也会一样,但如果你真的坚持这样:

class A:
    def callback_function(self): pass

    callback = callback_function