
Harry James
0
3296
568
Los métodos de Python a menudo pueden ser confusos una vez que ingresa a la programación orientada a objetos (OOP). Esta guía cubre los tres tipos principales de métodos en Python.
Los 3 tipos de métodos en Python
Hay tres tipos de métodos en Python: métodos de instancia, métodos estáticos, y métodos de clase.
Saber las diferencias no siempre es necesario para codificar los scripts básicos de Python, pero una vez que avanzas en OOP, las diferencias pueden hacer un gran cambio.
Si eres nuevo en Python, o simplemente quieres experimentar sin tener que instalar nada, asegúrate de visitar estos shells interactivos de Python en línea Prueba Python en tu navegador con estos Shells interactivos en línea gratis Prueba Python en tu navegador con estos interactivos en línea gratis Shells Ya sea que esté revisando estos ejemplos de Python o revisando los conceptos básicos de matrices y listas, puede probar el código directamente en su navegador. Aquí están los mejores intérpretes de Python en línea que hemos encontrado. .
Antes de comenzar: comprender los patrones decoradores
Antes de ver las diferencias, es importante comprender un patrón de diseño conocido como patrón decorador, o simplemente llamado decorador.
Los decoradores suenan complejos, pero no hay nada que temer. Los decoradores son simplemente funciones. Puede escribirlos usted mismo, o usar los incluidos en las bibliotecas, o la biblioteca estándar de Python.
Como cualquier función, los decoradores realizan una tarea. La diferencia aquí es que los decoradores aplican lógica o cambian el comportamiento de otras funciones. Son una excelente manera de reutilizar el código y pueden ayudar a separar la lógica en preocupaciones individuales.
El patrón decorador es la forma preferida de Python de definir métodos estáticos o de clase. Así es como se ve en Python:
class DecoratorExample: "" "Clase de ejemplo" "" def __init __ (self): "" "Configuración de ejemplo" "" print ('¡Hola, mundo!') @staticmethod def example_function (): "" "¡Este método está decorado!" "" print ('¡Soy una función decorada!') de = DecoratorExample () de.example_function ()
Los decoradores tienen que preceder inmediatamente a una declaración de función o clase. Empiezan con el @ @ signo, y a diferencia de los métodos normales, no tiene que poner paréntesis al final a menos que pase argumentos.
Es posible combinar múltiples decoradores, escribir los suyos y aplicarlos también a las clases, pero no necesitará hacer nada de eso para estos ejemplos.
Métodos de instancia en Python
Los métodos de instancia son el tipo más común de métodos en las clases de Python. Se llaman así porque pueden acceder a datos únicos de su instancia. Si tiene dos objetos cada uno creado a partir de una clase de automóvil, entonces cada uno puede tener propiedades diferentes. Pueden tener diferentes colores, tamaños de motor, asientos, etc..
Los métodos de instancia deben tener yo como parámetro, pero no es necesario pasar esto todo el tiempo. Self es otro término especial de Python. Dentro de cualquier método de instancia, puede usar self para acceder a cualquier información o método que pueda residir en su clase. No podrás acceder a ellos sin pasar por ti mismo.
Finalmente, como los métodos de instancia son los más comunes, no se necesita decorador. Cualquier método que cree se creará automáticamente como un método de instancia, a menos que le indique a Python lo contrario.
Aquí hay un ejemplo:
clase DecoratorExample: "" "Clase de ejemplo" "" def __init __ (self): "" "Configuración de ejemplo" "" print ('Hello, World!') self.name = 'Decorator_Example' def example_function (self): "" " ¡Este método es un método de instancia! "" "Print ('¡Soy un método de instancia!') Print ('Mi nombre es' + self.name) de = DecoratorExample () de.example_function ()
los nombre se accede a la variable a través de yo. Tenga en cuenta que cuando función_ejemplo se llama, no tienes que pasar por ti mismo, Python hace esto por ti.
Métodos Estáticos en Python
Los métodos estáticos son métodos que están relacionados con una clase de alguna manera, pero no necesitan acceder a ningún dato específico de la clase. No tienes que usar yo, y ni siquiera necesita crear una instancia de una instancia, simplemente puede llamar a su método:
class DecoratorExample: "" "Clase de ejemplo" "" def __init __ (self): "" "Configuración de ejemplo" "" print ('Hello, World!') @staticmethod def example_function (): "" "Este método es un método estático ! "" "print ('¡Soy un método estático!') de = DecoratorExample.example_function ()
los @staticmethod el decorador se usó para decirle a Python que este método es un método estático.
Los métodos estáticos son excelentes para las funciones de utilidad, que realizan una tarea de forma aislada. No necesitan (y no pueden) acceder a los datos de la clase. Deben estar completamente autocontenidos y solo funcionan con datos pasados como argumentos. Puede usar un método estático para sumar dos números, o imprimir una cadena dada.
Métodos de clase en Python
Los métodos de clase son el tercer y último tipo de método OOP que se debe conocer. Los métodos de clase saben acerca de su clase. No pueden acceder a datos de instancia específicos, pero pueden llamar a otros métodos estáticos.
Los métodos de clase no necesitan yo como argumento, pero necesitan un parámetro llamado cls. Esto significa clase, y como yo, Python lo pasa automáticamente.
Los métodos de clase se crean utilizando el @classmethod decorador.
class DecoratorExample: "" "Clase de ejemplo" "" def __init __ (self): "" "Configuración de ejemplo" "" print ('¡Hola, mundo!') @classmethod def example_function (cls): "" "Este método es una clase método! "" "print ('¡Soy un método de clase!') cls.some_other_function () @staticmethod def some_other_function (): print ('¡Hola!') de = DecoratorExample () de.example_function ()
Los métodos de clase son posiblemente los tipos de métodos más confusos de los tres, pero tienen sus usos. Los métodos de clase pueden manipular la clase en sí, lo cual es útil cuando trabajas en proyectos más grandes y complejos..
Cuándo usar cada tipo de método
Puede parecer una decisión difícil y desalentadora elegir entre los tipos de métodos en Python, pero pronto lo dominará con un poco de práctica..
Incluso si solo escribe pequeños scripts para divertirse, aprender otra función OOP de Python es una gran habilidad para conocer, y puede ayudar a que su código sea más fácil de solucionar y más fácil de reutilizar en el futuro.
En resumen:
- Métodos de instancia: El tipo de método más común. Capaz de acceder a datos y propiedades exclusivas de cada instancia.
- Métodos Estáticos: No se puede acceder a nada más en la clase. Código totalmente autónomo.
- Métodos de clase: Puede acceder a métodos limitados en la clase. Puede modificar detalles específicos de la clase.
Si este tutorial fue un poco avanzado, o no era exactamente lo que estabas buscando, entonces ¿por qué no echas un vistazo a estos cursos para ir de Python principiante a pro 5 Cursos que te llevarán de Python Principiante a Pro 5 Cursos que te ayudarán? Llevarte de Python Beginner a Pro Estos cinco cursos te enseñarán todo sobre programación en Python, uno de los lenguajes más populares que existen en este momento. ? Estos 5 sitios web también son excelentes para principiantes de Python. Si desea un uso físico de Python en el mundo real, pero está aburrido de Raspberry Pi, ¿qué tal nuestra guía para controlar Arduino con Python? ¿Cómo programar y controlar un Arduino con Python? ¿Cómo programar y controlar un Arduino con Python? Es imposible programar directamente un Arduino en Python, pero puede controlarlo a través de USB utilizando un programa Python. Así es cómo. ?