Red de conocimiento informático - Problemas con los teléfonos móviles - Introducción a la reflexión de Python

Introducción a la reflexión de Python

El mecanismo de reflexión es una función importante en los lenguajes de programación orientados a objetos. Puede obtener información de objetos dinámicamente y llamar objetos dinámicamente. Como lenguaje de programación dinámico, por supuesto, también hay un mecanismo de reflexión. Presenta cómo utilizar las funciones de reflexión de Python.

La información de definición del tipo de objeto se puede obtener cuando el programa se está ejecutando. Por ejemplo, type(obj) en Python devolverá el tipo del objeto obj. Esta capacidad de obtener el tipo, atributo o método de. el objeto se llama reflexión. A través del mecanismo de reflexión, se puede utilizar para verificar si existe un método o una variable en el objeto. Es decir, los métodos o propiedades de los objetos se pueden mapear mediante cadenas.

Funciones integradas de uso común para la reflexión de Python

Primero cree una clase:

Usando la capacidad de reflexión, podemos acceder a los atributos del objeto a través el diccionario de atributos __dict__:

Salida de ejecución:

A continuación, pruebe otras funciones de reflexión:

Salida:

Salida:

Salida:

Salida:

Salida:

Salida:

A continuación se describen dos escenarios de aplicación de la reflexión de Python.

Del ejemplo anterior aprendimos que los atributos de un objeto se pueden obtener mediante cadenas (getattr()), lo cual es una función muy útil. Por ejemplo, hay muchos métodos en una clase que proporcionan diferentes servicios. La ejecución de un determinado método se juzga por los parámetros de entrada. Generalmente se utiliza el siguiente método de escritura:

Si hay relativamente pocos. funciones, no hay gran problema al escribir de esta manera. Si hay muchas, será más complicado escribir así. Necesitas escribir muchas declaraciones adicionales. Puedes usar el mecanismo de reflexión para escribir:

.

¿No es esto mucho más simple? En el ejemplo anterior, a través de la reflexión, la cadena se convierte en una función e implementa llamadas dinámicas a métodos de objetos.

La configuración de atributos dinámicos se puede realizar a través del método setattr() Cuando usamos la biblioteca scapy para construir un mensaje, necesitamos configurar ciertos campos de mensaje. Sin embargo, los protocolos de red tienen muchos campos de mensaje y un tamaño grande. Es necesario configurar el número de campos. Cuando, es muy problemático asignar valores uno por uno:

Puede utilizar el método setattr() para asignar valores:

- -EL FINAL--