使用‘__ dict__’还是‘ vars()’?

在我看来,内建函数 vars()更像 Python,但我看到 __dict__使用得更频繁。

Python 文档指出它们是等价的。

一个博客 声称 ABC0比 vars()

我该用哪个?

14788 次浏览

一般来说,您应该将 dunder/magic 方法视为实现,并调用函数/方法作为 API,因此最好使用 vars()而不是 __dict__,就像使用 len(a_list)而不是 a_list.__len__(),或者使用 a_dict["key"]而不是 a_dict.__getitem__('key')一样

我会用 vars()

发信人: https://wiki.python.org/moin/DubiousPython#Premature_Optimization

虽然正确应用的优化确实可以加快代码的速度,但是对很少使用的代码进行优化[。.]会使代码更难阅读。[..]首先编写正确的代码,然后加快速度(如果必要的话)。

发信人: 巨蟒之禅

可读性很重要。

我同意 vars应该是首选。我的理由是,随着 python 的发展,vars可能会扩展到比 __dict__做得更多(例如,在 带槽的物体中工作,可能在3.7中)。