Método estático de Python
Este artículo demuestra cómo puede crear y usar métodos estáticos en Python.
Método estático de Python
Un método estático pertenece a una clase; aún así, no está vinculado al objeto de esa clase. Por lo tanto, se puede llamar sin crear una instancia de la clase en la que reside. Dado que los métodos estáticos no están vinculados a un objeto, no conoce las propiedades de una clase, por lo que no puede acceder ni modificar las propiedades de la clase.
Crear y usar un método estático de Python
Primero, creemos un método de instancia para que podamos diferenciarlo de un método estático. Digamos que tenemos una clase Coffee
con un método llamado is_hot
que acepta un número entero como parámetro. Devuelve True
si el número entero dado es mayor que 50 y False
si es menor que 50.
class Coffee:
def is_hot(self, temperature):
return temperature > 50
coffee = Coffee()
print(coffee.is_hot(100))
Producción :
True
En el ejemplo anterior, se creó una instancia de coffee
, que es una instancia de la clase Coffee
, para poder llamar al método is_hot
.
Ahora, convierta is_hot
en un método estático utilizando el decorador @staticmethod
. Es un decorador integrado que se utiliza para definir un método como método estático.
class Coffee:
@staticmethod
def is_hot(temperature):
return temperature > 50
print(Coffee.is_hot(100))
Producción :
True
A diferencia del método de instancia que creamos a partir del ejemplo anterior, no es necesario pasar self
como parámetro para los métodos estáticos, y no es necesario crear una instancia de la clase para poder usar un método estático. . Simplemente puede utilizar el proceso directamente.
Alternativamente, la función staticmethod()
se puede utilizar para crear un método estático. Esta es una función incorporada que toma una función como parámetro y la devuelve como método estático.
class Coffee:
def is_hot(temperature):
return temperature > 50
Coffee.is_hot = staticmethod(Coffee.is_hot)
print(Coffee.is_hot(100))
Producción :
True
Los métodos estáticos son útiles cuando se crean métodos de utilidad que realizan una tarea de forma aislada, ya que no necesitan acceder o modificar las propiedades de una clase; solo funciona con los datos pasados en los argumentos.
En resumen, podemos crear un método estático usando el decorador @staticmethod
o la función @staticmethod
. No es necesario tener una instancia de una clase para llamar a un método estático; simplemente podemos llamarlo directamente.