クラスがあるとしましょう
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
注: 私の具体的な例はより複雑であるため、例は単純化されています。私の目標は文字列を連結することではないとしましょう。