比方說,我有一個類如何從Python中重寫的@classmethod調用父類的@classmethod?
class SimpleGenerator(object):
@classmethod
def get_description(cls):
return cls.name
class AdvancedGenerator(SimpleGenerator):
@classmethod
def get_description(cls):
desc = SimpleGenerator.get_description() # this fails
return desc + ' Advanced(tm) ' + cls.adv_feature
現在我已經延長上述各類別有具體的每一個:
class StringGenerator(SimpleGenerator)
name = 'Generates strings'
def do_something():
pass
class SpaceShuttleGenerator(AdvancedGenerator)
name = 'Generates space shuttles'
adv_feature = ' - builds complicated components'
def do_something():
pass
現在讓我們假設我打電話
SpaceShuttleGenerator.get_description()
問題是在AdvancedGenerator
我想調用SimpleGenerator
中的方法傳遞類的一個實例,具體爲SpaceShuttleGenerator
。這可以做到嗎?
注意:該示例已被簡化,因爲我的具體示例涉及更多。假設我的目標不是連接字符串。
這是蟒蛇2或3?如果2,你是從'object'繼承嗎? – 2013-03-08 10:03:51
我很困惑你的使用子類作爲實例。他們根本不是一回事。 – 2013-03-08 10:05:08
@Martjin:python 2,繼承對象。修復示例。 – 2013-03-08 10:07:21