Revelando la naturaleza de las funciones, los métodos independientes y los métodos vinculados
El concepto de clases y métodos es fundamental para los paradigmas de programación orientada a objetos . Comprender los matices y las relaciones entre funciones, métodos no vinculados y métodos vinculados es crucial para dominar las complejidades del sistema de resolución de métodos de Python.
Definición de las entidades
Transformaciones y accesibilidad
Diferencias clave
Equivalencia y uso
Tanto en Python 2 como en Python 3, las siguientes expresiones son funcionalmente equivalentes:
f1(C())
C.f1(C())
C().f1()
Vincular una función a una instancia crea una versión modificada donde el primer parámetro se establece inherentemente en la instancia dada. Esencialmente, este método vinculado se comporta de manera idéntica a las siguientes formas alternativas:
lambda *args, **kwargs: f1(C(), *args, **kwargs)
functools.partial(f1, C())
De libre a enlazado
Una instancia de Python 2 de una clase no tiene ningún atributo directo correspondiente a los métodos independientes, que son en lugar de eso, se puede recuperar a través del atributo __dict__ de la propia clase. Sin embargo, acceder a un método independiente en una instancia da como resultado su conversión automática a un método vinculado.
Conclusión
Comprender las distinciones entre funciones, métodos independientes y métodos vinculados le permite utilizar eficazmente el mecanismo de resolución de métodos de Python. Comprender los mecanismos de vinculación y transformación le permitirá navegar con facilidad por las complejidades de la codificación orientada a objetos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3