python继承:使用argumen选择父类

2024-05-29 00:11:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在设计一些课程时遇到了困难。我希望我的用户能够使用Character()类,通过传入字符类型的参数(例如fighter/wizard)。你知道吗

虚拟代码:

class CharClass():
    def __init__(self, level):
        self.level = level

class Fighter(CharClass):
    # fighter stuff
    pass

class Wizard(CharClass):
    # wizard stuff
    pass

class Character(): #?
    def __init__(self, char_class):
        # should inherit from Fighter/Wizard depending on the char_class arg
        pass

例如,呼叫后: c = Character(char_class='Wizard') 我希望c继承向导类中的所有属性/方法。 我有很多类,所以我想避免为每个类编写单独的类,我想要一个用户(角色)的单一入口点。你知道吗

问题:可以这样做吗?或者这是一种愚蠢的方法?你知道吗


Tags: 用户selfinitdefpasslevelclasswizard
1条回答
网友
1楼 · 发布于 2024-05-29 00:11:21

您可以使用type函数的鲜为人知的功能:

def Character(char_class):
    return type("Character", (char_class,), {})

type可用于动态创建类。第一个参数是类名,第二个是要从中继承的类,第三个是初始属性。你知道吗

相关问题 更多 >

    热门问题