如何使用对象名列表实例化对象

2024-04-23 19:46:56 发布

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

我试图找出如何从一个名称属性字符串中初始化一些对象。每个对象都将映射到一个字典键。基本思路如下:

class Triangle(Shape):
    def __init__():
        Shape.__init__()
    name = "Triangle"

class Square(Shape):
    def __init__():
        Shape.__init__()
    name = "Square"

classTuple = (Triangle, Square)
classList = ["Triangle", "Square"]
classDict = {}

def initObjects():
    for shape in classList:
        for obj in classTuple:
            if obj.name == shape:
                classDict[shape] = obj(obj.sides, obj.corners #etc)

initObjects():

然而,唯一的问题是classTuple中的变量没有定义,需要设置为类对象。你要怎么做呢


Tags: 对象nameobjforinitdefclasstriangle
1条回答
网友
1楼 · 发布于 2024-04-23 19:46:56

您的__init__()方法缺少self参数。我还建议使用super()方法

class Triangle(Shape):
    def __init__(self):
        super().__init__()
    name = "Triangle"

class Square(Shape):
    def __init__(self):
        super().__init__()
    name = "Square"

classTuple = (Triangle, Square)
classList = ["Triangle", "Square"]
classDict = {}

def initObjects():
    for shape in classList:
        for obj in classTuple:
            if obj.name == shape:
                classDict[shape] = obj(obj.sides, obj.corners #etc)

initObjects()

相关问题 更多 >