我正在构建一个python程序,它将使用数千个python对象。我很好奇什么是最优雅的组织它们的方式,我也不清楚什么时候用python复制东西。在
例如,如果我有一个manager对象,它有一个由数千个对象组成的列表,但是它也有一个字典,其中每个对象都有关键字,那么这些对象在内存中存在两次吗?如果我要更改列表中某个对象的属性,它是否也会更改dict中相应对象的属性?在
我在这方面找不到什么好的读物,所以如果有人能给我指出正确的方向,那将是有帮助的。在
我的想法是:
class Manager():
def __init__(self,list_of_objects):
self.myobjects = []
self.myobjectsdict= {}
self.myobjects = list_of_objects
for object in self.myobjects:
self.myobjectsdict[object.name] = object
那么,如果我要创建第二个manager对象并将第一个manager的一些对象给它,它们会是副本吗?或者,第二个经理所做的更改是否适用于第一个经理所欠的对象?例如,这里发生了什么:
^{pr2}$第一个管理器中该对象的名称是否更改?dict键还是旧名称吗?在
最后,一个由数千个对象组成的列表或dict是组织大量python对象的最佳方法吗,还是有更好的方法我没有遇到过?非常感谢你的帮助。在
This post讨论通过引用传递变量(Python通过赋值传递)。在
当您通常将对象名称用于字典中的键或值时,您将传递对该对象的引用。如果要更新对象中的某个值,字典(或列表)中的值也将更新。在
如果你把这个词放在一个物体里面,它的行为也会是一样的。在
不,它们也可以作为参考。如果更改其中一个管理器的名称,则另一个管理器也会受到影响。在
你用Python对象做什么?你需要穿过它们吗?您是否尝试根据某些条件筛选对象?您是否需要快速检查某些值的存在?有必要在内存中保存数千个对象吗?在
如果没有更多的信息,这部分问题就不容易回答。在
相关问题 更多 >
编程相关推荐