Una clase es una plantilla para crear objetos y una instancia significa crear un objeto a partir de una clase. El verdadero potencial de la POO es la capacidad de definir variables y funciones dentro de las clases, las cuales se conocen como atributos y métodos respectivamente. Los atributos y métodos son elementos que almacenan datos (diferenciando los objetos dentro de la misma clase) utilizando variables de instancia
Definir un método es bastante simple, sólo tenemos que añadirlo en la clase y luego llamarlo desde el objeto con los paréntesis, como si de una función se tratase.
++++Cómo se declaran los diferente tipos de métodos?++++
En Python existen 3 tipos de métodos. Los métodos estáticos, de clase y de instancia. Para poder declarar un método estático es necesario anteponer @staticmethod, para un método de clase se debe de anteponer @classmethod y en cuanto al método de instancia, toma un parámetro (self), el cual apunta a una instancia de clase.
++++Diferencias y similitudes entre métodos:++++
En los métodos estáticos
• pueden ser llamados sin tener una instancia de la clase
• no tienen acceso al exterior, por lo cual no pueden acceder a ningún otro atributo o llamar a ninguna otra función dentro de la clase.
• puede ser utilizado cuando se tiene una clase pero no necesariamente se tiene una instancia para poder acceder al método.
• un método estático no se utiliza ninguna palabra reservada (ya que no tendrá acceso ni a variables ni a métodos de instancia o clase.)
En los métodos de clase
• pueden ser llamados sin tener una instancia de la clase (igual que el método estático, pero la diferencia recae en la capacidad de acceder otros métodos y atributos de la clase)
• no tienen accesos a atributos de instancia ya que ninguna instancia fue creada para poder utilizarlos.
• un método de clase se utiliza el keyword cls.
En los métodos de instancia:
• solamente puede ser llamado si se tiene una instancia de la clase.
• Una vez que se creó una instancia de la clase, se podrá accesar a los métodos de instancia:
• Un método de instancia es capaz de crear, obtener y cambiar los atributos de instancia y a su vez de llamar otros métodos de instancia y clase.
• un método de instancia se utiliza el keyword self.