在python中从类动态创建对象

2024-06-16 16:56:46 发布

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

我到处找遍了,但没有找到一个能回答我问题的题目。如果你知道其中之一,请随时将我引向它。在

我有两个动态创建的词典。[编辑:我所说的“动态”是指这些字典的大小将根据我输入程序的文件而有所不同。正如其中一条评论所指出的,我可能误用了这个词。请原谅。]

一个包含R、G、B值的字符串,如下所示:

colors = {0: ('255', '255', '255'), 1: ('255', '148', '0'), 2: ('238', '245', '0'), 3: ('255', '0', '0')}

另一个包含R、G、B值的索引信息,如下所示:

^{pr2}$

我创建了一个类:

class ColorArray:
    indexArray = []
    color = ""

现在我想从这个类中创建尽可能多的对象,就像我在“colors”dict中的值一样多,然后将“index”字典中所有匹配的键附加到这些对象的indexArray属性中

它看起来像这样:

>>>print(ColorArray0.color)
('255', '255', '255')
>>>print(ColorArray1.color)
('255', '148', '0')
>>>ColorArray0.indexArray.append(511)
>>>ColorArray1.indexArray.append(365)

Tags: 对象程序编辑字典动态词典color动态创建
1条回答
网友
1楼 · 发布于 2024-06-16 16:56:46

只需定义如何在类中处理__init__,是的,您应该创建类的实例,而不是创建类属性:

class ColorArray(object):
    def __init__(self, id, color, index = None):
        self.id = id
        self.colors = color
        self.index_array = [x for x, y in index.items() if y == id] if index else []

那就把课上的内容收集到你的dict项目上:

^{pr2}$

这里有一个live example

相关问题 更多 >