Python 使用对象比使用dict伪对象有什么好处?

Python 使用对象比使用dict伪对象有什么好处?,python,Python,请参考以下代码作为示例: 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

请参考以下代码作为示例:

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提供的结构,它使应用程序的操作更加严格等等。但是,我想知道是否还有其他我不知道的绝对好处。

如果您使用的是包含JIT编译器(例如PyPy)的Python实现,那么使用实际对象可以提高编译器优化代码的能力(因为与普通字典不同,编译器更容易推断对象成员的使用方式)


使用对象还允许子类化,这可以节省一些冗余的实现。

使用对象的明显优势是,您可以扩展其功能,而不仅仅是存储数据。例如,您可以有两个属性,并定义和
\uuueq\uuu
方法,该方法以simp以外的方式使用这两个属性仅比较两者并返回
False
,除非两者都匹配

此外,一旦定义了一个类,就可以轻松地定义该类的新实例,这些实例将共享原始类的结构,但是使用字典,您必须重新定义该结构或复制某种原始类,然后更改每个元素以匹配您希望新伪对象具有的值

字典的主要优点是,它带有各种预定义的方法(如
.items()
),可以使用
中的
轻松地进行迭代,可以使用dict理解方便地创建,并允许使用字符串变量轻松访问数据“成员”(尽管如此,
getattr
函数对对象实现了相同的功能)