es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se adjunta una función a una instancia de una clase?

Solía programar en Scheme, que es un lenguaje de programación funcional. En Scheme, las funciones son valores. Puedes asignar una función a una “estructura” (equivalente a una clase en Python). ¿Puedes hacer algo similar con las clases de Python? O, dicho de otra manera, ¿puedes pasar una función a un constructor?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, en Python se puede pasar una función a un constructor. Python admite funciones de primera clase, lo que significa que las funciones se pueden tratar como cualquier otro objeto, como cadenas, enteros o listas. Esto permite que las funciones se pasen como argumentos a otras funciones, incluido un constructor de una clase.

    En Python, se puede definir una clase y crear métodos dentro de esa clase. Estos métodos pueden tomar argumentos, incluidas funciones, que luego se pueden utilizar y llamar dentro de la clase.

    Por ejemplo:

    class MyClass:
        def __init__(self, my_function):
            self.my_function = my_function
    
        def call_function(self, x):
            return self.my_function(x)
    
    def my_function(x):
        return x**2
    
    instance_of_class = MyClass(my_function)
    result = instance_of_class.call_function(5)
    print(result) # imprime 25
    

    En el ejemplo anterior, definimos una clase llamada MyClass que toma una función como argumento en su constructor. Luego se asigna la función a una variable de instancia self.my_function. También definimos un método call_function dentro de la clase que llama a la función y devuelve el resultado.

    Luego creamos una instancia de la clase, instance_of_class, pasando nuestra función definida my_function como argumento al constructor. Finalmente, llamamos al método call_function, pasando el argumento 5, lo que llama a la función y devuelve su valor al cuadrado 25.

    Por lo tanto, Python admite el paso de funciones a constructores, lo que permite una implementación similar a la asignación de funciones a “estructuras” en Scheme.

Comments are closed.