08xxjf7lb Avnrhi9.jpeg

PROGRAMACIÓN EN PITÓN

Aunque sobrescribir objetos es una técnica de codificación típica de Python, puede provocar efectos inesperados. Necesita saber cómo utilizarlo para aprovechar sus puntos fuertes.

Sobrescribir en Python: No ingresar sin reconsiderar.  Puede ser peligroso.
Sobrescribir en Python puede ser peligroso: no ingrese sin reconsiderarlo. Foto por Raúl Nájera en desempaquetar

He sobrescrito muchos objetos diferentes en Python. Si ha pasado algunas horas codificando en Python, también lo ha hecho. Esto se debe a que, al menos en Python, sobrescribir objetos es el núcleo del lenguaje.

He sobrescrito variables pero también funciones, clases y métodos de clase, incluso excepciones:

Y, de hecho, diferenciaremos entre sobrescribir variables y callables. La diferencia entre estos dos procesos es bastante significativa, siendo el último más complicado. Y aunque nos centraremos en sobrescribir variables invocables, ya que es una técnica más avanzada, también analizaremos la sobrescritura de variables, ya que ofrece un buen punto de partida para nuestra discusión.

Python te permite sobrescribir casi todo. Casi, así que no todo: intenta sobrescribir el in palabra clave, por ejemplo, y fallará (a menos que desee modificar la gramática del idioma, pero no hablaremos de esto hoy). Pero más allá de estas pocas excepciones, puede sobrescribir todo, ya sea una variable, una función, una clase personalizada, una clase integrada, una instancia de una clase, un método de clase, una excepción, una función lambda o parcial, etc.

Tenga en cuenta que estamos discutiendo sobrescribirrelacionado con reemplazar o reasignar objetos en Python, y no primordial, un concepto de programación orientada a objetos que permite a una subclase definir su propia implementación de un método heredado de una superclase. Es más, es crucial entender la diferencia entre sobrescribir, extensión (por ejemplo, agregar un nuevo método a una clase), y subclasificación (una forma de herencia en la programación orientada a objetos).