使用enum在python中创建子类的新实例

2024-04-26 13:24:50 发布

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

我有以下Java代码,其中使用enum data type创建基类的实例,如下所示: 主要抽象类:

public abstract class Element{
    static enum elements{
         quad8{Element create(){return new ElementQuad2D();}};
         abstract Element create();
    }
    public static Element newElement (String name){
         el=elements.valueOf(name);
         return el.create();
    }
    public Element (String name, int nind, int nstress){
        this.name = name;
        /*Do Something Else*/
    }
}

子类:

class ElementQuad2D extends Element{
    public ElementQuad2D(){
    super("quad8",8,4);
    }
}

如何像上面那样创建枚举类型,以便我可以基于元素名创建不同子类的实例,比如PYTHON中的“quad8”?你知道吗


Tags: 实例nameabstractstringreturncreatestaticenum
1条回答
网友
1楼 · 发布于 2024-04-26 13:24:50

这可以通过从字符串到类的字典轻松实现。子类的使用在这里不起作用:

class Element: pass

class ElementQuad2D(Element): pass

mapping = {'quad8': ElementQuad2D}
obj = mapping['quad8']()
print(obj)
#  <__main__.ElementQuad2D object at 0x01D70BD0>

相关问题 更多 >