所以我正在做一个编码项目。我以前从未编码过...
基本上,我被困住了。我需要弄清楚如何执行以下操作才能继续。我有一个类和多个对象。这些对象(我们将其称为 A 对象)具有代表它们的 ID。我还设置了另一个类,其中包含一些对象(这些将是 B 对象)。我们将 B 对象的属性之一称为“标志”。嗯,Flags 是我提到的一些对象 A ID 的集合。我已经创建了一个算法,需要根据这些 ID 所代表的对象的其他属性来遍历这些 ID。我必须为集合中的这些 IDS 分配一个名称才能执行此操作,但我所做的一切都不起作用,这是因为 ID 代表单个对象,而我显然无法将所有对象命名为同一对象...... .
那么我怎样才能让Python将我设置的“标志”中的值(这是对象的一个属性)视为同名,以便我的算法可以查看每个值?
我不想命名整个集合,我需要集合中的值(代表另一个类中的其他对象)用相同的名称表示,以便算法可以运行它们
您可以通过创建字典来搜索算法中所需的内容。例如:
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