Programació orientada a objectes¶
La programació orientada a objectes és un estil de programació suportat per la major part dels llenguatges moders (també python) que consisteix en entendre els programes com una colecció d’objectes que interactuen entre ells i amb els quals podem interactuar per resoldre un problema.
Podem interactuar amb un objecte del mon real donant-li una ordre que produirà un canvi en l’objecte. Per exemple: podem interactuar amb una lampara prement un interruptor, la qual cosa farà que la lampara s’encenga. De vegades aquestes ordres requereixen de paràmetres, per exemple podem ordenar al televisor que augmente el volum fins el valor 28.
Les ordres que podem donar als objectes en python s’anomenen mètodes, i la sintaxi és la següent:
objecte.mètode(paràmetres)
Totes les variables creades en python són objectes i, per tant, tenen mètodes que podem utilitzar. A continuació tens un exemple de com utilitzar mètodes amb una variable de tipus str.
s = 'soc una cadena de text'
l = s.islower() # l serà igual a True. Aquest mètode retorna True si tots els caràcters de la cadena son lletres minuscules
s = s.capitalize() # El mètode capitalize retorna una copia de la cadena de text però amb la primera lletra majúscula.
Un exemple de programació orientada a objectes: formatar cadenes de text¶
Les cadenes de text són objectes amb multitud de mètodes que pots trobar consultant la documentació de Python.
Un d’aquestos mètodes és format()
, que ens permet formatar cadenes de text, la qual cosa significa modificar la manera en que esta mostra la informació.Aquest mètode s’utilitza amb la sintaxi següent:
str.format(valors)
On str és la cadena a formatar i valors són una sèrie de valors que introduirem dis de la cadena. Per exemple:
>>> '{0} a {1} de {2} de {3}'.format('Mislata', 3, 'desembre', 2025)
'Mislata a 3 de desembre de 2025'
Com podem comprovar, cadascun dels objectius {}
és reemplaçat ordenadament per els paràmetres del mètode format. També podem utilitzar noms per als objectius de la manera següent:
>>> 'He menjat {quantitat} plats de {menjar}'.format(quantitat=2, menjar='carn')
'He menjat 2 plats de carn'
Un objectiu pot ser escrit de la manera següent: {nom:longitud.decimalsf}
. Per exemple:
nombre1 = 7
nombre2 = 3
resultat = nombre1 / nombre2
print('El resultat de dividir {0} entre {1} és {2:5.3f}'.format(nombre1, nombre2, resultat) # Mostrarà 'El resultat és 2.333'
Observa que la longitud del nombre és de cinc caràcters (incloent el punt decimal), dels quals 3 són decimals.
La lletra f indica que la dada serà tractada com a un nombre amb decimals. Existeixen altres opcions per a formatar que no estudiarem com nombres hexadecimals o percentatges.
>>> 'Resultat: {0}'.format(5/7)
'Resultat: 0.7142857142857143'
>>> 'Resultat: {0:4.2f}'.format(5/7)
'Resultat: 0.71'
>>> 'Resultat: {0:.2%}'.format(5/7)
'Resultat: 71.43%'