Curso de Python desde cero

¿Qué es el método __init__ de Python?

Capítulo 38: El método __init__ de Python - Programación orientada a objetos

Seguimos viendo cosas sobre las clases. En este capítulo veremos lo que es el método __init__, el cuál es un método especial que podemos poner en las clases para establecer unos valores iniciales a los objetos que se creen a partir de la clase que lo contenga.

class Usuario:
	def __init__(self, nombre, apellidos)
		self.nombre = nombre
		self.apellidos = apellidos

	def imprime_datos(self):
		print('Nombre:', self.nombre, '\nApellidos:', self.apellidos)

usuario001 = Usuario()

¿Por qué da error?
La respuesta es sencilla, gracias al __init__ el valor inicial de nombre y apellidos debe especificarse siempre.
El error viene porque no he especificado en la creación del objeto ninguno de los atributos del __init__ y el error me dice eso mismo, que se requieren esos dos argumentos.

TypeError: __init__() missing 2 required positional arguments: 'nombre' and 'apellidos'

Es tan fácil como dárles un valor:

class Usuario:
	def __init__(self, nombre, apellidos)
		self.nombre = nombre
	self.apellidos = apellidos

	def imprime_datos(self):
		print('Nombre:', self.nombre, '\nApellidos:', self.apellidos)

usuario001 = Usuario('Enrique', 'Barros Fernández')

usuario002 = Usuario('Javier', 'Gomila Reyes')

Esta vez se crean los dos objetos sin problemas.

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.