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.