Python @método estático

Puede haber alguna funcionalidad que se relacione con la clase, pero no requiere ninguna instancia para realizar algún trabajo; en tales casos, se pueden usar métodos estáticos. Un método estático es un método que está vinculado a la clase y no al objeto de la clase. No puede acceder ni modificar el estado de la clase. Está presente en una clase porque tiene sentido que el método esté presente en la clase. Un método estático no recibe un primer argumento implícito.

Syntax:

class C(object):
    @staticmethod
    def fun(arg1, arg2, ...):
        ...

Returns: a static method for function fun.

Cuando @staticmethodse llama a la función decorada con, no le pasamos una instancia de la clase como se hace normalmente con los métodos. Significa que la función se coloca dentro de la clase pero no puede acceder a la instancia de esa clase.

Ejemplo 1:

# Python program to 
# demonstrate static methods
  
class Maths():
      
    @staticmethod
    def addNum(num1, num2):
        return num1 + num2
          
# Driver's code
if __name__ == "__main__":
      
    # Calling method of class
    # without creating instance
    res = Maths.addNum(1, 2)
    print("The result is", res)

Producción:

The result is 3

Ejemplo #2:

# Python program to
# demonstrate static methods
  
class Person: 
    def __init__(self, name, age): 
        self.name = name 
        self.age = age 
        
    # a static method to check if a Person is adult or not. 
    @staticmethod
    def isAdult(age): 
        return age > 18
          
# Driver's code
if __name__ == "__main__":
    res = Person.isAdult(12)
    print('Is person adult:', res)
      
    res = Person.isAdult(22)
    print('\nIs person adult:', res)

Producción:

Is person adult: False

Is person adult: True

Publicación traducida automáticamente

Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *