我有三个Python类,Student
,Event
,和StudentEvent
。你知道吗
为简单起见:
class Student:
def __init__(self, id):
self.id = id
class Event:
def __init__(self, id):
self.id = id
self.studentevents = []
class StudentEvent:
def __init__(self, student, event, id):
self.student = student
self.event = event
self.id = id
我有成千上万个这样的类的实例,我把它们放进字典里,我可以阅读和分析。读取和创建对象需要很多时间,所以我想把它们整理成3个字典,students_dict
,events_dict
,studentevents_dict
。你知道吗
好吧,我能做到。但是,如果我以后取消词典的pickle,那么studentevents_dict
中的学生和事件将不会引用Students
和Events
中相同的students_dict
和events_dict
,对吗?你知道吗
如果我稍后修改对象,例如,在Event
对象中填充关联的StudentEvents
列表,这可能会有问题,因为StudentEvent
引用的事件不会是events_dict
中具有相同id的Event
。你知道吗
正确。如果需要保留对象之间的指针关系,则必须将它们合并到一个元组中。这里我使用
dill
而不是pickle
,但是效果应该是一样的。这适用于类实例(如图所示)、dict或其他情况。你知道吗后来
相关问题 更多 >
编程相关推荐