我需要编写一个类,允许子类使用函数名称设置属性.然后,该函数必须可以从类的实例中调用.
例如,我说我需要编写一个Fruit类,子类可以在欢迎消息中传递.Fruit类必须公开可以设置的属性print_callback.
class Fruit(object):
print_callback = None
def __init__(self, *args, **kwargs):
super(Fruit, self).__init__(*args, **kwargs)
self.print_callback("Message from Fruit: ")
Run Code Online (Sandbox Code Playgroud)
我需要公开一个可以被这段代码使用的API(要清楚,这段代码不能改变,说它是第三方代码):
def apple_print(f):
print "%sI am an Apple!" % f
class Apple(Fruit):
print_callback = apple_print
Run Code Online (Sandbox Code Playgroud)
如果我跑:
mac = Apple()
Run Code Online (Sandbox Code Playgroud)
我想得到:
来自Fruit的消息:我是Apple!
相反,我得到:
TypeError:apple_print()只取1个参数(给定2个)
我认为这是因为self作为第一个参数传入.
那么我该如何编写Fruit类呢?谢谢!