python – 使用对象而不是使用dict伪对象有什么好处?

参见英文答案 >
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函数与对象实现了相同的功能).

点赞