Esta pagina se ve mejor con JavaScript habilitado

Clases y herencias en python

 ·  🎃 kr0m

Cuando un proyecto comienza a crecer nos vemos obligados a dejar el modo de programación scripting mode para pasar a programación mas seria, me refiero a organizar el código mediante funciones con las cuales podremos reutilizar funciones, comenzar a utilizar estructuras complejas las cuales mediante la programación orientada a objectos nos resultará mas cómodo operar con ellas, en este artículo voy a explicar de forma muy breve como funcionan las clases en python y su herencia.

En este ejemplo tan básico podemos ver como una clase SysAdmin hereda de Employee de este modo no tendremos que volver a escribir el código de Employee, el objeto employee2 tendrá los métodos de Employee al haber heredado de esta clase, en rojo dejo remarcada la parte mas interesante del código.

#!/usr/bin/env python

class Employee(object):
  def __init__(self, name, dni):
    self.name = name
    self.dni = dni

  def getName(self):
    return self.name

  def getDni(self):
    return self.dni

class SysAdmin(Employee):
  def __init__(self, name, dni, can_see_matrix):
    Employee.__init__(self, name, dni )
    self.can_see_matrix = can_see_matrix

if __name__ == "__main__":
  employee = Employee('employee00', '123456')
  print "Employee created with following data:"
  print "-- Name: " + str(employee.getName())
  print "-- Dni: " + str(employee.getDni())

  employee2 = SysAdmin('employee01', '54321', 'Sure')
  print "Employee created with following data:"
  print "-- Name: " + str(employee2.getName())
  print "-- Dni: " + str(employee2.getDni())
  print "-- Can See Matrix: " + str(employee2.can_see_matrix)

La clase SysAdmin tiene los métodos de Employee gracias a la instrucción:

Employee.__init__(self, name, dni )

Y el parámetro extra can_see_matrix gracias a:

self.can_see_matrix = can_see_matrix
Si te ha gustado el artículo puedes invitarme a un RedBull aquí