0
私が持っているメインクラスとして:パイソン - 同じ名前を持つ複数の継承
class OptionsMenu(object):
def __init__(self, name):
try:
self.menu = getattr(self, name)()
except:
self.menu = None
@staticmethod
def cap():
return ['a', 'b']
として子クラスのオーバーライドがあります:最初のクラスは、デフォルトのテンプレートのメニューオプションを提供します
class OptionsMenu(OptionsMenu):
@staticmethod
def cap():
return ['a', 'b', 'c']
を、しばらく次に、他のテンプレートを示します。
子クラスから派生した別のクラスOptionsMenu
を取得し、そのリスト(['a', 'b', 'c']
)を取得してそれを変更します。
これはPythonで実現可能ですか?はいの場合は、どうすればいいですか?
何か助けてくれてありがとう!
class OptionsMenu:
@staticmethod
def cap():
return ['a', 'b', 'c']
class OptionsMenu(OptionsMenu):
@staticmethod
def cap():
lst = super(OptionsMenu, OptionsMenu).cap() # ['a', 'b', 'c']
lst.append('d')
return lst
print(OptionsMenu.cap()) # ['a', 'b', 'c', 'd']
しかし、異なるクラスに同じクラス名を与えることを指摘したようは非常に悪い考えです:
なぜ同じ名前を使用しますか? – ComputerFellow
2つの 'OptionsMenu'が別個のモジュールにある可能性はありますが、それはなぜですか? –
なぜ、なぜですか? –