Obtendrá conocimiento sobre el método setattr () de Python en este artículo, mientras cubrimos lo que logra, cuándo emplearlo y cuándo es innecesario. Independientemente de si el atributo está presente o no, el método se utiliza para definir el valor de un atributo para un objeto.
Sintaxis de la función setattr () en python
La siguiente es la sintaxis setattr () que implementamos en un script de python:
setattr (set_object, set_variable, set_value)
El objeto.El parámetro de atributo se establece en el valor igual utilizando el nombre de los argumentos del objeto, el nombre de la variable y el valor. Esta función no arroja ninguna excepción porque cualquier propiedad de objeto puede ser de cierto tipo. No devuelve nada a la función de llamadas.
Ejemplo 1: programa de usar la función setattr ()
El método setattr () muestra cómo la programación orientada a objetos todavía funciona bien en estas situaciones y es muy útil si los atributos de un objeto pueden cambiar mientras se utiliza. Aquí está el programa para demostrar el funcionamiento de la función setattr ():
Empleado de la clase:
Emp_name = 'Alice'
my_object = empleado ()
imprimir ("antes de setattr nombre del empleado:", my_object.Emp_Name)
setattr (my_object, 'emp_name', 'alice jeo')
Imprimir ("After Setattr Nombre del empleado:", My_Object.Emp_Name)
En el guión, primero establecimos una clase que está representada con el nombre "Empleado". En la clase especificada, creamos una variable de clase como "Emp_name". La variable de clase "Emp_Name" se establece con el valor de cadena que es el nombre del empleado. Luego, definimos un objeto como "my_object" e invocamos la clase "Empleado". La impresión se utiliza aquí para imprimir el valor de la variable "emp_name" antes de que se implementa la función setattr ().
A la función setAttr, pasamos tres entradas: my_obeject, el nombre de la variable "emp_name" y el valor modificado de la variable "emp_name". Luego, en la última declaración de impresión, imprimimos el nombre del empleado después de usar la función setattr ().
El siguiente es el resultado obtenido del script anterior de la función python setattr ():
Ejemplo 2: Programa de usar la propiedad de la función setattr ()
Aquí, mostramos la propiedad de la función setattr () en python.
Animal de clase:
animal_name = 'gato'
obj1 = animal ()
Imprimir ("ANTES SETATTR NAME:", STR (OBJ1.animal_name))
setattr (obj1, 'animal_name', ninguno)
setattr (obj1, 'detalle', 'gatitos persa')
Imprimir ("After Setattr Nombre del animal:" + STR (OBJ1.animal_name))
Imprimir ("After Setattr Animal Detalle:", Str (OBJ1.detalle))
En el guión anterior, definimos la clase a la que hemos asignado el nombre "Animal". A la clase "animal". Definimos una variable como "animal_name" que se establece con el valor de la cadena del nombre del animal "gato". Entonces, tenemos un objeto como "obj1" donde se invoca la clase "animal". Luego, imprimimos el objeto pasándolo en el método STR antes de la función setattr ().
Después de eso, la función setattr () se implementa donde se pasa el "obj1". La variable "animal_name" también se pasa con el valor "ninguno". Aquí, implementamos otra función setattr () en el nuevo atributo y la inicializamos con el nuevo valor. Se proporciona la instrucción de impresión para imprimir el objeto después de la función setattr ().
Los resultados de la función setattr () antes y después de utilizarla se muestran en lo siguiente:
Ejemplo 3: programa de usar la función setattr () con dict
Tener la capacidad de establecer numerosos atributos simultáneamente es un beneficio de utilizar la función setattr (). Si le dieran un diccionario de las características de un objeto, ¿qué contendría? Para configurarlos para los diversos atributos de un objeto, puede recurrir a ellos.
clase myDictClass (objeto):
def __init __ (self, dict1):
Para la clave en dict1:
setattr (self, key, dict1 [clave])
Si __name__ == "__main__":
dict1 = "student_name": "Edison",
"Student_id": "3278",
"Student_degree": "it"
my_result = myDictClass (dict1)
Imprima ("Después de la conversión del diccionario a la clase:")
imprimir (my_result.Student_name, my_result.Student_id, my_result.Student_degree)
imprimir (tipo (my_result))
En este script en particular, primero definimos la clase "MydictClass". Llamamos al objeto a la clase. Luego, tenemos una definición del método init que toma el "yo" y el "dict1" como argumentos.
Después de eso, tenemos el bucle for que los bucles sobre cada clave y el valor del diccionario dado. Luego implementamos la función setattr () donde se agregan los valores de self, clave y dict. Luego, dentro de la función principal de este script, creamos el diccionario. Después de eso, pasamos ese diccionario a la clase "MyDictClass" con la ayuda del objeto recién creado: "my_result". Al final, imprimimos el resultado.
Ejemplo 4: programa de usar la función setattr () con excepción
Aquí, construiremos los atributos de solo lectura para el objeto. Si intentamos usar la función setattr () para cambiar el valor del atributo, se plantea una excepción.
Producto de clase:
def __init __ (self):
ser._Function = ninguno
Función DEF (self):
imprimir ('función llamada')
volver a ser._Función
obj = propiedad (función, ninguno)
P1 = producto ()
setattr (p1, 'obj', 'laptop')
Primero, tenemos la definición de clase como "producto". Definimos el método init donde el yo como argumento se proporciona a la clase. La variable se crea como una "función" que tiene un valor establecido en ninguno. Luego, definimos la función de la variable anterior, "función".
Después de eso, creamos un objeto como "obj" donde tenemos el nombre de la propiedad "función". A la función de propiedad, pasamos la variable "función" y su valor. La función setattr () se invoca a la que proporcionamos el P1, el obj y el nuevo valor que arroja la excepción.
Puede ver que la siguiente excepción se plantea del script anterior:
Conclusión
Este artículo nos enseñó cómo utilizar la función setattr () para establecer dinámicamente los atributos del objeto mientras se ejecuta una aplicación. Cuando las propiedades son desconocidas para el desarrollador y una API debe ser flexible, esta es una forma muy útil para la programación orientada a objetos. Aprendió a asignar un valor al atributo de un objeto usando la función Python Setattr (). También se borra su conocimiento de definir la función con la función setattr (). Luego, aprendió a usar el método setattr () mientras lo usaba para establecer los atributos con un diccionario de Python.