参见英文答案 >
Dictionary vs Object – which is more efficient and why? 7个
请参考以下代码作为示例:
import numpy as np
N = 200
some_prop = np.random.randint(0,100, [N, N, N])
#option 1
class ObjectThing():
def __init__(self, some_prop):
self.some_prop = some_prop
object_thing = ObjectThing(some_prop)
#option 2
pseudo_thing = {'some_prop' : some_prop }
我喜欢选项1提供的结构,它使应用程序的操作更加严格和诸如此类.但是,我想知道是否还有其他更多我不了解的绝对好处.
最佳答案 使用对象的明显优势是,您可以扩展其功能,而不仅仅是存储数据.例如,你可以有两个属性,define和__eq__方法以某种方式使用这两个属性,而不是简单地比较它们并返回False,除非两者都匹配.
此外,一旦定义了类,您就可以轻松定义将共享原始结构的该类的新实例,但是使用字典,您必须重新定义该结构或制作某种类型的副本原始的,然后更改每个元素以匹配您希望新的伪对象具有的值.
字典的主要优点是它们带有各种预定义的方法(例如.items()),可以很容易地使用in迭代,可以使用dict理解方便地创建,并允许轻松访问数据“members”使用字符串变量(尽管如此,getattr函数与对象实现了相同的功能).