2017-05-14 8 views
-3

Ich möchte auf ein Klassenattribut in einer Methode zugreifen, die der Klasse zugeordnet ist, aber da dies automatisch sein soll, verwende ich eine for-Schleife. Das Problem ist, wie man den Attributnamen, den ich als String bekomme, an self anfügt, damit ich auf das Attribut zugreifen kann: self.str.Zugriff auf ein Klassenattribut mit Django in Python

Code Snippet: Source Code

+0

Entschuldigung dafür, aber das Bild ist in der Verbindung. Vielen Dank. – temci

+3

Willkommen bei Stack Overflow. Bitte verzichten Sie auf Links zu Bildern von Code. Kopieren Sie stattdessen den für Ihre Frage relevanten Code und fügen Sie ihn direkt in Ihren Beitrag ein (dies ist natürlich nur eine allgemeine Regel. Sie sollten immer sicherstellen, dass der von Ihnen veröffentlichte Code ein [Minimal, vollständig und verifizierbar] darstellt. /stackoverflow.com/help/mcve) Beispiel für das Problem, dem Sie gegenüberstehen). Als Referenz lesen Sie bitte [Wie zu fragen] (http://stackoverflow.com/help/how-to-ask). – stybl

+0

Versuchen Sie 'getattr (self, str)'! – schwobaseggl

Antwort

1

Attribute der Instanz gespeichert ist, als ein Wörterbuch Feld __dict__ genannt. Ein geeigneter Weg, um ein Feld dynamisch zu erhalten, ist jedoch eine getattr Methode. Hier ist ein Beispiel:

>>> t = Test() 
>>> t.b = 2 
>>> getattr(t, 'b') 
2 
>>> getattr(t, 'c', 'default_value') 
'default_value' 
+0

Es funktioniert! Vielen Dank. – temci

Verwandte Themen