Curso de POO en Python desde cero

¿Cómo heredar de clases en diferentes archivos Python?

Capítulo 8: Herencia de clases en diferentes archivos - POO Python

Seguimos con la herencia de clases. Esta vez, te enseño a utilizar clases y herencias a través de múltiples archivos de Python.

Aquí tienes el código que debes incluir en cuatro archivos diferentes, serán los que vas a utilizar en este capítulo.

Archivo a.py

En este archivo, tenemos tres import para importar el contenido de los otros archivos.
Lo siguiente es una función que nada tiene que ver con las clases. Solo es para que veas la diferencia entre función y método.
Gracias a los import tenemos acceso a las clases almacenadas en los otros archivos y podemos hacer la instanciación desde aquí aunque no esté la clase en este mismo archivo.

import b
import c
import d

def muestra_datos_comun(self):
	print("El nombre y los apellidos del usuario son: " + self.nombre, self.apellidos)
	print("El ID de usuario es: " + self.nid + ".")
	print("El alias del usuario es: " + self.alias + ".")


usuario1=b.Usuarios("001", "raulito43", "Raúl", "Fernández Gomila")

usuario2=c.UsuariosPremium("002", "PdePython", "Paula", "Vega García",  10, 500)

usuario3=d.UsuariosPremiumPlus("003", "BreakTheSystem", "Anonymous", "Anonymous Anonymous", 25, 1500)

print("\nDATOS USUARIO 1 - Usuarios")
usuario1.muestra_datos()
print("\nDATOS USUARIO 2 - UsuariosPremium")
usuario2.muestra_datos()
print("\nDATOS USUARIO 3 - UsuariosPremiumPlus")
usuario3.muestra_datos()

Archivo b.py

Este archivo contiene la clase Usuarios.

class Usuarios:
	tipo_usuario = "Free"
	publicidad = True

	def __init__(self, nid, alias, nombre, apellidos):
		self.nid = nid
		self.alias = alias
		self.nombre = nombre
		self.apellidos = apellidos

	def muestra_datos(self):
		print("El nombre y los apellidos del usuario son: " + self.nombre, self.apellidos)
		print("El ID de usuario es: " + self.nid + ".")
		print("El alias del usuario es: " + self.alias + ".")

Archivo c.py

Este archivo importa del archivo b.py, con lo que tiene acceso a la clase Usuarios, lo que permite crear la herencia con dicha clase.

import b

class UsuariosPremium(b.Usuarios):
	def __init__(self, nid, alias, nombre, apellidos, participacion_sorteos, puntos_premios):
		self.participacion_sorteos = participacion_sorteos
		self.puntos_premios = puntos_premios
		self.contenido_premium = True
		super().__init__(nid, alias, nombre, apellidos)

	def muestra_datos(self):
		super().muestra_datos()
		print("Tienes ", self.puntos_premios, " puntos para canjear en premios.")
		print("Tienes ", self.participacion_sorteos, " puntos para participar en sorteos.")

	tipo_usuario = "Premium"
	publicidad = False
	participacion_sorteos = 10

Archivo d.py

Finalmente, tengo este archivo que importa de c.py para obtener la herencia de la clase UsuariosPremium.

import c

class UsuariosPremiumPlus(c.UsuariosPremium):
	participacion_sorteos = 25

	def muestra_datos(self):
		super().muestra_datos()
		print("El tipo de usuario es: ", c.UsuariosPremium.tipo_usuario)

En el vídeo tienes las explicaciones más a fondo.

Comentarios

Si te quedan dudas sobre el temario, sobre Python, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.