gpt4 book ai didi

python - 如何将类作为参数传递并继承方法

转载 作者:行者123 更新时间:2023-11-28 17:28:45 26 4
gpt4 key购买 nike

我已经读过 this但我想在参数中继承类的方法。

例子:

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()

然后从上面的代码我怎么能做这样的事情:

a = Game(TypeOfGame1)
a.get_max_players() # should return 2
a = Game(TypeOfGame2)
a.get_max_players() # should return 30

最佳答案

如果我理解正确的话,使用 __getattr__ 来代理你的类怎么样?

n [2]: class Game(object):
...: def __init__(self, game_cls):
...: self.game = game_cls()
...: def __getattr__(self, other):
...: return getattr(self.game, other)
...:

In [7]: g = Game(TypeOfGame1)

In [8]: g.get_max_players()
Out[8]: 2

In [11]: g = Game(TypeOfGame2)

In [12]: g.get_max_players()
Out[12]: 30

关于python - 如何将类作为参数传递并继承方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36312615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com