Use `__dict__` or `vars()`?

前端 未结 3 1234
忘了有多久
忘了有多久 2020-12-01 07:33

Builtin function vars() looks more Pythonic to me, but I see __dict__ used more frequently.

The Python documentation indicates that they ar

相关标签:
3条回答
  • 2020-12-01 07:52

    I agree vars should be preferred. My rationale is that, as python evolves, vars might be extended to do more than __dict__ does (for example, work for objects with slots, possibly in 3.7).

    0 讨论(0)
  • 2020-12-01 07:53

    Generally, you should consider dunder/magic methods to be the implementation and invoking functions/methods as the API, so it would be preferable to use vars() over __dict__, in the same way that you would do len(a_list) and not a_list.__len__(), or a_dict["key"] rather than a_dict.__getitem__('key')

    0 讨论(0)
  • 2020-12-01 07:57

    I'd use vars().

    From: https://wiki.python.org/moin/DubiousPython#Premature_Optimization

    While a correctly applied optimization can indeed speed up code, optimizing code that is only seldom use [..] can make code harder to read. [..] Write correct code first, then make it fast (if necessary).

    From: The Zen of Python

    Readability counts.

    0 讨论(0)
提交回复
热议问题