Una clase define una colección de variables de instancia y métodos para especificar un tipo de objeto. Una clase se puede utilizar para crear tantas instancias de objeto del tipo de objeto como sea necesario. Un objeto es una entidad identificada con ciertos atributos (miembros de datos) y comportamientos (funciones miembro). Un grupo de objetos que tienen características y comportamiento similares son la instancia de la misma clase.
Python es un lenguaje de programación dinámico y, debido a su flexibilidad, Python tiene una ventaja significativa sobre los lenguajes de tipado estático. El código Python se puede importar dinámicamente y las clases se pueden crear dinámicamente en tiempo de ejecución.
Las clases se pueden crear dinámicamente usando la type()
función en Python. La type()
función se utiliza para devolver el tipo del objeto.
Sintaxis:
type(object)
La sintaxis anterior devuelve el tipo de objeto.
Ejemplo:
# program to illustrate the use of type() print(type("Geeks4Geeks !")) print(type(1706256))
Producción:
class 'str' class 'int'
Creación de clases dinámicas en Python
Las clases se pueden crear dinámicamente usando la siguiente sintaxis:
Sintaxis:
type(name, bases, attributes) Parameters: name: The user defined name of the class bases: A list of base classes, and its type is tuple attributes: the data members and methods contained in the class
La sintaxis anterior devuelve un nuevo tipo de objeto.
Ejemplo:
# program to create class dynamically # constructor def constructor(self, arg): self.constructor_arg = arg # method def displayMethod(self, arg): print(arg) # class method @classmethod def classMethod(cls, arg): print(arg) # creating class dynamically Geeks = type("Geeks", (object, ), { # constructor "__init__": constructor, # data members "string_attribute": "Geeks 4 geeks !", "int_attribute": 1706256, # member functions "func_arg": displayMethod, "class_func": classMethod }) # creating objects obj = Geeks("constructor argument") print(obj.constructor_arg) print(obj.string_attribute) print(obj.int_attribute) obj.func_arg("Geeks for Geeks") Geeks.class_func("Class Dynamically Created !")
Producción:
constructor argument Geeks 4 geeks! 1706256 Geeks for GeeksClass Dynamically Created!
En el programa anterior, la clase Geeks
se crea dinámicamente y tiene un constructor. Los miembros de datos de Geeks
son string_attribute
y int_attribute
y las funciones miembro de Geeks
son displayMethod()
y classMethod()
. Se crea un objeto obj
de clase Geeks
y se asignan y muestran todos los miembros de datos Geeks
, también se llaman todas las funciones miembro de.
Publicación traducida automáticamente
Artículo escrito por riturajsaha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA