python - lenguaje - Utilice `__dict__` o` vars() `?
python tutorial (3)
La función incorporada vars()
parece más Pythonic, pero veo que __dict__
usa con más frecuencia.
La documentación de Python indica que son equivalentes.
Un blogger afirma que __dict__
es más rápido que vars()
.
¿Qué debo usar?
En general, debe considerar que los métodos dunder / magic son la implementación e invocar funciones / métodos como la API, por lo que sería preferible usar vars()
sobre __dict__
, de la misma manera que haría len(a_list)
y no a_list.__len__()
, o a_dict["key"]
lugar de a_dict.__getitem__(''key'')
Estoy de acuerdo con vars
debe ser preferido. Mi razonamiento es que, a medida que Python evoluciona, las vars
pueden extenderse para hacer más que __dict__
(por ejemplo, trabajar para objetos con espacios , posiblemente en 3.7).
Yo uso vars()
.
De: https://wiki.python.org/moin/DubiousPython#Premature_Optimization
Si bien una optimización aplicada correctamente puede acelerar el código, la optimización del código que rara vez se usa [..] puede hacer que el código sea más difícil de leer. [..] Primero escribe el código correcto, luego hazlo rápido (si es necesario).
De: El zen de Python
La legibilidad cuenta.