Obtener el reflejo de la información del objeto.

Obtener el reflejo de la información del objeto.

La llamada reflexión se refiere a la operación (que incluye: adición, eliminación, modificación y modificación) de propiedades y métodos de objetos en forma de cadenas de caracteres.

  1. hasattr (objeto, nombre)

    Se usa para determinar si el objeto especificado tiene los atributos y métodos especificados por el nombre del parámetro

  2. getattr (objeto, nombre [, predeterminado])

    Se utiliza para obtener el atributo y el nombre del método en el objeto objeto especificado

    Si no se especifica el parámetro predeterminado, se genera AttributeError cuando no hay ningún atributo y método llamado nombre en el objeto

    Si se especifica el parámetro predeterminado, se devolverá el valor predeterminado cuando no haya ninguna propiedad y método llamado nombre en el objeto

    getattr (objeto, nombre) es equivalente a: object.name

  3. setattr (objeto, nombre, valor)

    Se usa para agregar o modificar el atributo y el método llamado nombre del parámetro en el objeto especificado, el valor agregado o modificado es el valor

    setattr (objeto, nombre, valor) es equivalente a object.name = value

  4. delattr (objeto, nombre)

    Se utiliza para eliminar el atributo o método llamado nombre del parámetro en el objeto especificado

    delattr (objeto, nombre) es equivalente a: del object.name

    Nota: solo cuando no se conoce la información del objeto, se obtendrá la información del objeto. Por lo tanto, si puede escribir directamente: object.name,

    No escriba como getattr (objeto, 'nombre').

    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'))
    

Supongo que te gusta

Origin www.cnblogs.com/huanyinglvtuan/p/12670891.html
Recomendado
Clasificación