Ben ana sınıfı olarak:Python - aynı ada sahip birden kalıtım
class OptionsMenu(object):
def __init__(self, name):
try:
self.menu = getattr(self, name)()
except:
self.menu = None
@staticmethod
def cap():
return ['a', 'b']
ve bir çocuk sınıfı geçersiz kılma vardır: Birinci sınıf varsayılan şablonu için menü seçenekleri sunar
class OptionsMenu(OptionsMenu):
@staticmethod
def cap():
return ['a', 'b', 'c']
iken sonraki diğer şablon için verir.
Çocuk sınıfından türetilen başka bir sınıf OptionsMenu
istiyorum ve listeyi alın (['a', 'b', 'c']
) ve bunlarda değişiklikler yapın.
Bu python'da kullanılabilir mi? Eğer evet ise, bunu nasıl başarabilirim?
Yardımlarınız için çok teşekkürler!
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']
Ama farklı sınıflar için aynı sınıf isim vermek belirtildiği gibi çok kötü bir fikir geçerli:
Niçin aynı ada sahip olmak istersiniz? – ComputerFellow
İki 'OptionsMenu' farklı modüllerdeyse mümkündür, ancak ... neden bu? –
Neden, neden? –