如何为集合中的值分配名称以便Python函数可以运行它们?

问题描述 投票:0回答:1

所以我正在做一个编码项目。我以前从未编码过...

基本上,我被困住了。我需要弄清楚如何执行以下操作才能继续。我有一个类和多个对象。这些对象(我们将其称为 A 对象)具有代表它们的 ID。我还设置了另一个类,其中包含一些对象(这些将是 B 对象)。我们将 B 对象的属性之一称为“标志”。嗯,Flags 是我提到的一些对象 A ID 的集合。我已经创建了一个算法,需要根据这些 ID 所代表的对象的其他属性来遍历这些 ID。我必须为集合中的这些 IDS 分配一个名称才能执行此操作,但我所做的一切都不起作用,这是因为 ID 代表单个对象,而我显然无法将所有对象命名为同一对象...... .

那么我怎样才能让Python将我设置的“标志”中的值(这是对象的一个属性)视为同名,以便我的算法可以查看每个值?

我不想命名整个集合,我需要集合中的值(代表另一个类中的其他对象)用相同的名称表示,以便算法可以运行它们

python xcode attributes set
1个回答
0
投票

您可以通过创建字典来搜索算法中所需的内容。例如:

class AObject:
    def __init__(self, obj_id):
        self.obj_id = obj_id

class BObject:
    def __init__(self, flags):
        self.flags = flags

a1 = AObject(1)
a2 = AObject(2)
a_ids = {a1.obj_id, a2.obj_id, a3.obj_id}
id_to_name = {
    1: "name1",
    2: "name2",
    3: "name3"
}
b_flags = {a1.obj_id}
b_obj = BObject(b_flags)

for flag_id in b_obj.flags:
    if flag_id in id_to_name:
        print(f"id {flag_id} ---> {id_to_name[flag_id]}")

输出可能是这样的:

#id 1 ---> name1
© www.soinside.com 2019 - 2024. All rights reserved.