Cómo definir una clase Persona en Python y crear atributos, contructor, métodos, setters, getters. Cómo instanciar la clase creando varios objetos de la misma. Uso de variable global de la clase y ejemplo de uso.
- Requisitos para crear aplicación Python.
- Código fuente Python de creación y uso de clase Persona.
- El resultado de la ejecución del programa Python de creación y uso de clase Persona.
Requisitos para crear aplicación Python
En el siguiente artículo explicamos cómo instalar Python y un IDE de desarrollo (Visual Studio Code):
Código fuente Python de creación y uso de clase Persona
A continuación mostramos el código fuente de ejemplo en Python para crear una clase Persona y usarla. El código está comentado explicando cada paso:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
from datetime import date # Para obtener el año actual # Definimos una clase Persona class Persona: # Definimos los atributos de la clase nombre = '' apellidos = '' sexo = '' edad = 0 ciudad = '' # Definimos un "constructor" para la clase que recibirá el nombre de la persona def __init__(self, nombre): self.nombre = nombre #Definimos los "setters" def setNombre(self, nombre): self.nombre = nombre def setApellidos(self, apellidos): self.apellidos = apellidos def setSexo(self, sexo): self.sexo = sexo def setEdad(self, edad): self.edad = edad def setCiudad(self, ciudad): self.ciudad = ciudad #Definimos los "getters" def getNombre(self): return self.nombre def getApellidos(self): return self.apellidos def getSexo(self): return self.sexo def getEdad(self): return self.edad def getCiudad(self): return self.ciudad def getApellidos(self): return self.apellidos # Ejemplo de método que devuelve el año de nacimiento en función de la edad def añoNacimiento (self): # Obtenemos la fecha actual fechaActual = date.today() # Obtenemos el año de la fecha actual año = fechaActual.year # Calculamos el año de nacimiento restando al año actual la edad de la persona añoNacimiento = año - self.edad return añoNacimiento #Definimos un método en la clase para mostrar todos los datos de la persona por pantalla def mostrarDatos(self): print('El nombre de la persona es: ' + self.nombre) print('La edad de la persona es: ' + str(self.edad)) print('El sexo de la persona es: ' + self.sexo) print('La ciudad de la persona es: ' + self.ciudad) # Método para asignar el nombre completo a partir de los apellidos y el nombre def generarNombreCompleto (self): global nombreCompleto nombreCompleto = self.apellidos + ', ' + self.nombre #Fuera de la clase, definimos un objeto "ciudadano" de la clase Persona #Le pasamos el nombre al constructor de la clase ciudadano = Persona("Alonso Javier") # Con los setters establecemos los datos del ciudadano ciudadano.setApellidos('Lucas Sánchez') ciudadano.setCiudad('Murcia') ciudadano.setEdad(46) ciudadano.setSexo('Hombre') # Usamos el método de la clase que muestra los datos de la persona por pantalla ciudadano.mostrarDatos() # Usamos los setters y algún método de la clase para mostrar # algunos datos del objeto ciudadano de la clase Persona print('El ciudadano ' + ciudadano.getNombre() + ' vive en ' + ciudadano.getCiudad() + ', nació en el año ' + str(ciudadano.añoNacimiento())) # Llamamos al método que obtiene el nombre completo en la clase ciudadano.generarNombreCompleto(); # Ejemplo de uso de variable global declarada en la clase Persona # Para mostrar que no es necesario usar el nombre del objeto para usarla print('El nombre completo es: ' + nombreCompleto) # Declaramos un segundo objeto de la clase Persona # para mostrar cómo trabajar con varios objetos de la misma clase informatico = Persona("Vicenta Tomasa") informatico.setApellidos('Buendía Fuenlabrada') informatico.setCiudad('Madrid') informatico.setEdad(34) informatico.setSexo('Mujer') #Datos del objeto informático print('Datos del informático:') informatico.mostrarDatos() #Datos del objeto ciudadano print('Datos del ciudadano:') ciudadano.mostrarDatos() # Si llamamos al método generarNombreCompleto y mostramos # al ser variable global, tomará el valor de la última vez que fue llamada # Aquí seguirá mostrando los datos del objeto "ciudadano" print('El nombre completo del informático es: ' + nombreCompleto) # Ahora mostrará los datos del "informático" informatico.generarNombreCompleto() print('El nombre completo del informático es: ' + nombreCompleto) # Y ahora del ciudadano ciudadano.generarNombreCompleto() print('El nombre completo del ciudadano es: ' + nombreCompleto) |
El resultado de la ejecución del programa Python de creación y uso de clase Persona
En nuestro caso hemos usado el IDE Visual Studio Code, al compilar la aplicación Python, mostrará este resultado: