Método estático de Python
En esta breve publicación, aprenderemos cómo crear y usar un método estático de Python. También echaremos un vistazo a qué ventajas y desventajas ofrecen los métodos estáticos en comparación con los métodos de instancia. Empecemos.
¿Qué es un método estático?
Los métodos estáticos en Python son extremadamente similares a los métodos a nivel de clase, la diferencia radica en que un método estático está ligado a una clase en lugar de a los objetos de esa clase. Esto significa que un método estático puede ser llamado 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 ligados a él. Veamos cómo podemos crear métodos estáticos en Python.
Creación de métodos estáticos de Python
Los métodos estáticos de Python se pueden crear de dos formas. Veamos cada una de las formas aquí:
Usando staticmethod()
Vamos directamente al fragmento de código de ejemplo sobre cómo usar el enfoque staticmethod()
:
class Calculator:
def addNumbers(x, y):
return x + y
# crear el método estático addNumbers
Calculator.addNumbers = staticmethod(Calculator.addNumbers)
print('Product:', Calculator.addNumbers(15, 110))
Observe que llamamos al addNumbers que creamos sin un objeto. Cuando ejecutamos este programa, aquí está la salida que obtendremos: No hubo sorpresas aquí. Este enfoque está controlado ya que en cada lugar es posible crear un método estático a partir de un método de clase también. 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 como método de clase y hacerlo estático en cada lugar donde lo hacemos estático. Utilicemos esta anotación en un fragmento de código:
class Calculator:
# crear el método estático addNumbers
@staticmethod
def addNumbers(x, y):
return x + y
print('Product:', Calculator.addNumbers(15, 110))
Cuando ejecutamos este programa, aquí está la salida 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 anotación
@staticmethod
.
Ventajas del método estático en Python
Los métodos estáticos tienen un caso de uso muy claro. Cuando necesitamos alguna funcionalidad no con respecto a un objeto sino con respecto a toda la clase, hacemos un método estático. Esto es bastante ventajoso cuando necesitamos crear métodos de utilidad ya que generalmente no están vinculados al ciclo de vida de un objeto. Finalmente, note que en un método estático, no necesitamos pasar el self
como el primer argumento. Referencia de la API: Documentación de Python
Source:
https://www.digitalocean.com/community/tutorials/python-static-method