Zaten this okudum, ancak parametrede sınıf yöntemlerini miras almak istiyorum.Bir sınıfı parametre olarak geçirme ve yöntemleri devralma yöntemleri
Örnek: yapabileceğini nasıl yukarıdaki bu koddan Sonra
class TypeOfGame1(object):
def get_max_players(self):
return 2
class TypeOfGame2(object):
def get_max_players(self):
return 30
class Game(object):
def __init__(self, game_cls):
self.game = game_cls()
şeyler gibi:
a = Game(TypeOfGame1)
a.get_max_players() # should return 2
a = Game(TypeOfGame2)
a.get_max_players() # should return 30
Uzun vadede en kısa ve anlaşılması kolay olmak istiyorum. 'a.game.get_max_players()' 'a.get_max_players()' dan daha uzundur (ve çok fazla karşılaştırmaya sahibim ve devam ediyor) –
Eksik özniteliklere bakmak için '__getattr__' öğesini uygulamanız gerekir. 'self.game'. Her şey biraz geri kalmış gibi görünüyor - TypeOfGame1 '' Game''in bir örneği mi yoksa alt sınıfı mı olmalı? – jonrsharpe
Evet, belki de 'Game (TypeOfGame1, TypeOfGame2) 'sınıfıyla miras alınıyor ve sonra kurucunun parametresine bağlı olarak, hangi aramayı yapacağınızı seçin? Mümkünse (sanırım) –