En Python, los métodos estáticos son métodos definidos dentro de una clase que no reciben el primer argumento self, que es típico de los métodos de instancia. Los métodos estáticos se utilizan para agrupar funciones que están relacionadas con la clase, pero que no requieren acceso a los atributos o métodos de instancia, es decir, no dependen del estado de ningún objeto.
Los métodos de clase (también conocidos como métodos de clase estáticos) son métodos que están asociados con la clase en sí, no con las instancias (objetos) creadas a partir de la clase. Estos métodos se definen utilizando el decorador @classmethod antes de la declaración del método.
A diferencia de los métodos de instancia, los métodos de clase reciben como primer argumento la clase en sí, por convención llamado cls. Esto permite que los métodos de clase accedan a los atributos de clase y realicen operaciones relacionadas con la clase.
class MiClase:
variableClase=10
def __init__(self,at1):
self.at1=at1
def metodo_instancia(self):
print("Método de instancia")
@staticmethod
def metodo_estatico():
print("Método estático")
@classmethod
def metodo_clase(cls):
print("Método clase", cls.variableClase)
ob1=MiClase(3)
ob1.metodo_instancia()
MiClase.metodo_estatico()
MiClase.metodo_clase()
MiClase.variableClase=99
MiClase.metodo_clase()