Desarrollo con Python
  • Conceptos básicos
    • 🐍Introducción a Python
      • 🐍Variables
      • 🐍Strings
      • 🐍Números
      • 🐍Comentarios
      • 🐍Funciones
      • 🐍Funciones Propias
      • 🐍Zen of Python
    • 💿Primer programa
  • Operadores en python
    • ❎Operadores
      • ❎Operadores Aritméticos
      • ❎Operadores de asignación
      • ❎Booleanos
      • ❎Operadores de comparación
      • ❎Operadores lógicos
      • ❎Operadores de identidad
      • ❎Operadores de pertenencia
  • Datos Complejos
    • ▶️Datos complejos
      • ▶️Listas
      • ▶️Tuplas
      • ▶️Diccionarios
      • ▶️Bytes y Bytearrays
      • ▶️Sets
      • ▶️NoneType
    • 💿Caso práctico: Agenda
  • Control de flujo
    • 🛑Estructuras de control de flujo
      • 🛑Sentencias if/elif/else
      • 🛑Sentencia for
      • 🛑Sentencia while
      • 🛑break/continue/pass
    • ⚠️Excepciones en Python3
    • 🎯Caso práctico: 4 in Row
  • Orientacion a objetos
    • 💾Scope y Namespaces
    • 💾Clases en Python 3
    • 💾Métodos y atributos
    • 💾Clases y Objetos
    • 💾Decorators
  • Trabajando con objetos
    • 🔢Trabajando con Objetos
      • 🔢Trabajando con Números
      • 🔢Trabajando con Strings
      • 🔢Trabajando con Listas
      • 🔢Trabajando con Tuplas
      • 🔢Trabajando con Sets
      • 🔢Trabajando con Diccionarios
  • Programación Modular
    • 🧩Programación modular
      • 🧩Paquetes
      • 🧩PIP y paquetes externos
      • 🧩Pandas
      • 🧩NumPy
      • 🧩Matplotlib
      • 📄Caso Práctico
  • Proyectos finales
    • 🐍Videojuego Snake
    • 📥Detección de Spam con Machine Learning
Con tecnología de GitBook
En esta página
  • 1. ¿Qué son los métodos?
  • 2. Parámetro self
  • 3. Acceso a los métodos de una clase
  • 4. Atributos
  • 4. Método __init__()
  1. Orientacion a objetos

Métodos y atributos

1. ¿Qué son los métodos?

La primera construcción que vamos a presentar que puede definirse dentro del cuerpo de la clase son las funciones. Cuando una función forma parte de una clase se le denomina método.

Todo lo que hemos visto sobre las funciones se aplica también a los métodos, la única diferencia práctica por ahora es la forma en que se invocan los métodos.

class Coche:
    def velocidad_maxima():
        """Este método nos devuelve la velocidad máxima del coche"""
        print("Velocidad máxima:  ???")
        
coche1 = Coche()

2. Parámetro self

Cuando definimos métodos en una clase es necesario proporcionarles el parámetro self, que debe situarse en primer lugar antes de los otros parámetros. El parámetro self es una referencia a la propia clase, y se utiliza para poder acceder a diferentes componentes de la misma.

class Coche:
    def velocidad_maxima(self):
        """Este método nos devuelve la velocidad máxima del coche"""
        print("Velocidad máxima:  ???")

3. Acceso a los métodos de una clase

Cuando instanciamos un objeto a partir de la clase, podemos acceder a los métodos con la siguiente sintaxis:

<nombre_objeto>.<nombre_metodo>([<argumentos>])
class Coche:
    def velocidad_maxima(self):
        """Este método nos devuelve la velocidad máxima del coche"""
        print("Velocidad máxima:  ???")
        
coche1 = Coche()

coche1.velocidad_maxima()
Velocidad máxima:  ???

4. Atributos

Otra de las cosas que podemos definir en una clase son variables. Cuando se define una variable dentro de una clase se denomina atributo.

A la hora de definir atributos en una clase, podemos definirlos de dos tipos: Atributos de clase y Atributos de instancia.

  • Un atributo de clase es una variable que pertenece a la clase y va a estar compartida entre todos los objetos que se instancien a partir de esa clase. Podemos acceder al valor de estos atributos con la sintaxis:

<nombre_objeto>.<nombre_atributo_clase>
class Coche:
    atributo_clase = 150
    def velocidad_maxima(self):
        """Este método nos devuelve la velocidad máxima del coche"""
        print("Velocidad máxima:", self.atributo_clase)
        
renault = Coche()

renault.velocidad_maxima()
Velocidad máxima: 150

renault.atributo_clase
150

bmw = Coche()

bmw.velocidad_maxima()
Velocidad máxima: 150

bmw.atributo_clase
150
  • Un atributo de instancia es una variable que pertenece a un objeto en particular y que solo puede ser accedida en el contexto de ese objeto. Estas variables deben definirse en un método especial denominado constructor y representado por la sintaxis __init__(). Podemos acceder al valor de estos atributos con la sintaxis:

<nombre_objeto>.<nombre_atributo_instancia>

4. Método __init__()

El método __init__() es un método especial que Python ejecuta automáticamente cada vez que creamos una nueva instancia basada en esa clase. Este método tiene dos guiones bajos iniciales y dos guiones bajos finales, una convención que ayuda a evitar que los nombres de métodos por defecto de Python entren en conflicto con los definidos por el usuario.

El método __init__() se denomina constructor de la clase debido a que asigna valores específicos del objeto que se esta instanciando.

class Coche:
    def __init__(self, vel_max, consumo_medio):
        self.vel_max = vel_max
        self.con_medio = consumo_medio
    def velocidad_maxima(self):
        """Este método nos devuelve la velocidad máxima del coche"""
        print("Velocidad máxima:", self.vel_max)
    def consumo_medio(self):
        """Este método nos devuelve el consumo medio del coche"""
        print("Consumo medio:", self.con_medio)    
            
renault = Coche(200, 7)

renault.velocidad_maxima()
Velocidad máxima: 200

renault.consumo_medio()
Consumo medio: 7

bmw = Coche(250, 10)

bmw.velocidad_maxima()
Velocidad máxima: 250

bmw.consumo_medio()
Consumo medio: 10

AnteriorClases en Python 3SiguienteClases y Objetos

Última actualización hace 1 año

💾
Page cover image