Holen Sie sich die Reflexion der Objektinformationen

Holen Sie sich die Reflexion der Objektinformationen

Die sogenannte Reflexion bezieht sich auf die Operation (einschließlich: Hinzufügen, Löschen, Ändern und Ändern) von Objekteigenschaften und -methoden in Form von Zeichenfolgen.

  1. hasattr (Objekt, Name)

    Wird verwendet, um zu bestimmen, ob das angegebene Objekt die durch den Parameternamen angegebenen Attribute und Methoden aufweist

  2. getattr (Objekt, Name [, Standard])

    Wird verwendet, um das Attribut und die Methode namens name im angegebenen Objektobjekt abzurufen

    Wenn der Standardparameter nicht angegeben wird, wird AttributeError ausgelöst, wenn das Objekt kein Attribut und keinen Methodennamen enthält

    Wenn der Parameter default angegeben ist, wird default zurückgegeben, wenn das Objekt keine Eigenschaft und keinen Methodennamen enthält

    getattr (Objekt, Name) entspricht: object.name

  3. setattr (Objekt, Name, Wert)

    Wird verwendet, um das Attribut und die Methode mit dem Namen Parametername im angegebenen Objekt hinzuzufügen oder zu ändern. Der hinzugefügte oder geänderte Wert ist value

    setattr (Objekt, Name, Wert) entspricht object.name = value

  4. delattr (Objekt, Name)

    Wird verwendet, um das Attribut oder die Methode mit dem Namen Parametername im angegebenen Objekt zu löschen

    delattr (Objekt, Name) entspricht: del object.name

    Hinweis: Nur wenn die Objektinformationen nicht bekannt sind, werden die Objektinformationen abgerufen. Wenn Sie also direkt schreiben können: object.name,

    Schreiben Sie nicht als getattr (Objekt, 'Name').

    class Myclass(object):
        def __init__(self):
            self.x = 1
    
        def do_sth(self):
            print("do_sth被调用")
    
    mc = Myclass()
    
    print(hasattr(mc, 'x')) # True
    print(hasattr(mc, "do_sth")) # True
    print(hasattr(mc, 'y')) # False
    print(getattr(mc, 'x')) # 1
    f = getattr(mc, 'do_sth')
    f()
    # print(getattr(mc, 'y'))#AttributeError
    print(getattr(mc, 'y', 2))
    
    setattr(mc, 'z', 3)
    print(getattr(mc, 'z'))
    
    setattr(mc, 'z', 4)
    print(mc.z)
    
    delattr(mc, 'z')
    print(hasattr(mc, 'z'))
    

Ich denke du magst

Origin www.cnblogs.com/huanyinglvtuan/p/12670891.html
Empfohlen
Rangfolge