Es ist viel besser, getattr()
zu verwenden, als direkt in die __dict__
-Struktur zu gehen.
Nicht weil es schneller oder langsamer ist, sondern weil die offizielle API unter all Bedingungen funktioniert, einschließlich für Klassen die nicht haben __dict__
(wenn __slots__
zum Beispiel) oder wenn ein Objekt das __getattr__
oder __getattribute__
Hooks oder wenn das betreffende Attribut ein ist Deskriptor (z. B. property
) oder ein Klassenattribut.
Wenn Sie wissen möchten, ob eine Python-Anweisung oder -Technik schneller als eine andere ist, verwenden Sie das Modul timeit
bis messen den Unterschied:
Sie können sehen, dass der direkte Zugriff auf __dict__
schneller ist, aber getattr()
macht viel mehr Arbeit.
Tags und Links python performance getattr dynamic-attributes