Més sobre disseny de classes¶
Atributs privats¶
Serveixen per impedir que es faci un mal ús de la classe.
El seu nom comença amb doble subratllat (
__
).Només són accessibles des de dins del cos de la classe (des de fora, queden «amagats»).
Nota
També podem definir mètodes privats, o sigui, funcions auxiliars accessibles només des de dins del cos de la classe. El seu nom comença amb doble subratllat (__
).
Exemple: Classe Feix¶
Còpia d’objectes¶
Els objectes d’una classe de Python definida per nosaltres són mutables.
Mitjançant el mòdul
copy
. Conté dues funcions:copy.copy()
icopy.deepcopy()
.copy.copy()
fa una còpia de l’objecte, però no dels atributs.copy.deepcopy()
fa una còpia de l’objecte i també dels atributs, dels atributs dels atributs, etc (recursivament).
Funcions predefinides de Python per a treballar amb classes¶
type
(): consulta el tipus d’un objecte.dir()
: retorna una llista amb el nom de tots els atributs i mètodes d’un objecte.vars()
: retorna un diccionari amb els atributs i valors d’un objecte.isinstance()
: indica si un objecte és d’una classe.issubclass()
: indica si una classe hereda (és subclasse) d’una altra.
Atributs de classe¶
Compte
A l’assignatura no s’exigeix saber-ho fer servir, però apareixen amb certa freqüència a la documentació de Python.
Són objectes únics compartits per totes les instàncies de la classe.
Es defineixen al cos de la classe, al mateix nivell que els mètodes.