Método estático de Python
En esta publicación rápida, aprenderemos a crear y usar un método estático de Python. También veremos qué ventajas y desventajas ofrecen los métodos estáticos en comparación con los métodos de instancia. Comencemos.
¿Qué es un método estático?
Los métodos estáticos en Python son extremadamente similares a los métodos de nivel de clase de Python , la diferencia es que un método estático está vinculado a una clase en lugar de a los objetos de esa clase. Esto significa que se puede llamar a un método estático sin un objeto para esa clase. Esto también significa que los métodos estáticos no pueden modificar el estado de un objeto ya que no están vinculados a él. Veamos cómo podemos crear métodos estáticos en Python.
Creando métodos estáticos de Python
Los métodos estáticos de Python se pueden crear de dos maneras. Veamos cada una de ellas aquí:
Usando el método estático()
Pasemos directamente al fragmento de código de muestra sobre cómo utilizar este staticmethod()enfoque:
class Calculator: def addNumbers(x, y): return x + y# create addNumbers static methodCalculator.addNumbers = staticmethod(Calculator.addNumbers)print('Product:', Calculator.addNumbers(15, 110))
Tenga en cuenta que hemos llamado a addNumbers que creamos sin un objeto. Cuando ejecutemos este programa, obtendremos el siguiente resultado: No hubo sorpresas. Este enfoque está controlado ya que en cada lugar también es posible crear un método estático a partir de un método de clase. Veamos otro enfoque con el mismo ejemplo aquí.
Usando @staticmethod
Esta es una forma más sutil de crear un método estático, ya que no tenemos que depender de una definición de declaración de un método que sea un método de clase y que lo haga estático en cada lugar donde lo hagamos. Usemos esta anotación en un fragmento de código:
class Calculator: # create addNumbers static method @staticmethod def addNumbers(x, y): return x + yprint('Product:', Calculator.addNumbers(15, 110))
Cuando ejecutamos este programa, este es el resultado que obtendremos: En realidad, esta fue una forma mucho mejor de crear un método estático, ya que la intención de mantener el método estático es clara tan pronto como lo creamos y lo marcamos con la @staticmethodanotación.
Ventajas del método estático de Python
Los métodos estáticos tienen un caso de uso muy claro. Cuando necesitamos alguna funcionalidad no relacionada con un objeto sino con la clase completa, hacemos que un método sea estático. Esto es bastante ventajoso cuando necesitamos crear métodos de utilidad, ya que normalmente no están vinculados al ciclo de vida de un objeto. Por último, tenga en cuenta que en un método estático no necesitamos que selfse pase como primer argumento. Referencia de API: Documentación de Python