La función staticmethod() de Python se usa para convertir una función en una función estática. Un método estático es un método que pertenece a una clase en lugar de una instancia de una clase. Los métodos estáticos no requieren instanciación.
Sintaxis: método estático (función)
Parámetro:
El método staticmethod() toma un único argumento, es decir, toma una función como argumento.
Devoluciones:
staticmethod() devuelve un método estático de la función pasada como argumento.
Ejemplo 1: Implementación para la aplicación de staticmethod()
Python3
class demoClass: def greet(msg): return msg # convert the add to a static method demoClass.greet = staticmethod(demoClass.greet) # we can access the method without # creating the instance of class print(demoClass.greet("hai"))
Producción:
hai
En el código anterior, se crea una clase con el método greeting(), luego se convierte al método estático usando staticmethod(), y se llama sin crear una instancia, como hemos discutido anteriormente, no es necesario crear una instancia de la clase para llamar a un método estático.
Ejemplo 2: Implementación para la aplicación de staticmethod()
Python3
class demoClass: def __init__(self, a, b): self.a = a self.b = b def add(a, b): return a+b def diff(self): return self.a-self.b # convert the add to a static method demoClass.add = staticmethod(demoClass.add) # we can access the method without creating # the instance of class print(demoClass.add(1, 2)) # if we want to use properties of a class # then we need to create a object Object = demoClass(1, 2) print(Object.diff())
Producción:
3 -1
Si no necesitamos usar las propiedades de clase, entonces podemos usar métodos estáticos, aquí en el código anterior, el método add() no usa ninguna propiedad de clase, por lo que se hace estático usando staticmethod() y se debe llamar al método diff creando una instancia porque usa propiedades de clase.
Publicación traducida automáticamente
Artículo escrito por pulamolusaimohan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA