Verwechseln mit getattribute und setattribute in python

Ich will wissen, dass, wenn ich die Klasse wie folgt aus

class Test(object):
    def __init__(self):
        self.a = 20
        self.b = 30

obj = Test()

Wenn ich obj.a, dann die zuerst angerufen?

__getattr__ oder getattr oder lookup in __dict__['a']

und gleichzeitig mit setattr

Laut Python 2.7 docs:

Objekt.__getattr__(selbst, Namen)

Aufgerufen, wenn ein Attribut-lookup nicht gefunden hat das Attribut in den üblichen stellen (d.h. es wird keine Instanz-Attribut, noch ist es in der Klasse Baum für sich selbst). name ist der name des Attributs. Diese Methode sollte den (berechneten) Attribut-Wert erhöhen oder eine AttributeError-Ausnahme.

Heißt es nicht gefunden in den üblichen Orten. was ist, dass die üblichen Orte. Ich möchte wissen, Wann es aufgerufen wird

auch, was ist das diff mit diesem object.__getattribute__(self, name)

Kann mir jemand Beispiel, wo alle genutzt werden

  • Ich kann nicht verstehen, die Frage.
  • Keine der 3 Optionen bestehen. Meinst du __getattribute__('a'), __getattr__('a'), und __dict__['a']
  • Eric du hast Recht
  • Wenn Sie wissen möchten, welche der drei wird zuerst aufgerufen? Sie sind nicht alle genannt IIRC gleichzeitig in einem Aufruf, nennt man Sie unter verschiedenen circomstances.. sehen Sie mehr auf docs.python.org/2/reference/datamodel.html
Schreibe einen Kommentar