Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.
| Següent revisió | Revisió prèvia | ||
|
python_classes [2023/07/06 07:22] josep_lladonosa_capell creat |
python_classes [2023/07/06 21:02] (actual) josep_lladonosa_capell afegides etiquetes |
||
|---|---|---|---|
| Línia 1: | Línia 1: | ||
| + | {{tag> python classes #FpInfor #Daw #DawMp03 # | ||
| + | **Classes i objectes en Python** | ||
| + | |||
| Python permet organitzar els programes a partir d' | Python permet organitzar els programes a partir d' | ||
| Línia 8: | Línia 11: | ||
| Paraules clau i elements destacables en el món de les classes en Python: | Paraules clau i elements destacables en el món de les classes en Python: | ||
| - | * '' | + | * '' |
| - | * '' | + | * '' |
| - | * '' | + | * '' |
| - | * paràmetres | + | * paràmetres |
| + | |||
| + | |||
| + | **Exemple amb explicacions: | ||
| + | |||
| + | |||
| + | <code python> | ||
| + | # a Python tot són objectes (fins i tot les variables) | ||
| + | |||
| + | # classe sense constructor ni atributs ni mètodes | ||
| + | class A(): # en la declaració de la classe podem ometre els () | ||
| + | pass | ||
| + | |||
| + | |||
| + | objecteA = A() | ||
| + | print(type(objecteA)) | ||
| + | |||
| + | |||
| + | # classe amb atributs de classe | ||
| + | # als atributs de classe s'hi pot accedir per mitjà de la classe (sense necessitat d' | ||
| + | class B(): | ||
| + | b1 = 10 | ||
| + | b2 = 30 | ||
| + | |||
| + | |||
| + | objecteB = B() | ||
| + | print(objecteB.b1 + objecteB.b2) | ||
| + | |||
| + | |||
| + | # classe amb mètodes (les funcions dins una classe s' | ||
| + | class C(): | ||
| + | def metodeC(self): | ||
| + | print(" | ||
| + | |||
| + | |||
| + | objecteC = C() | ||
| + | objecteC.metodeC() | ||
| + | |||
| + | |||
| + | # classe amb atributs de classe i mètodes | ||
| + | class D(): | ||
| + | d = " | ||
| + | |||
| + | def metodeD(self): | ||
| + | print(" | ||
| + | |||
| + | |||
| + | objecteD = D() | ||
| + | objecteD.metodeD() | ||
| + | objecteD.d = "" | ||
| + | objecteD.metodeD() | ||
| + | # podem establir el valor d'un atribut de classe per a totes les instàncies que s' | ||
| + | # creant assignant per mitjà de la classe (com si fos membre abstracte) | ||
| + | D.d = "NOU VALOR PER A TOTS ELS NOUS" | ||
| + | objecteD2 = D() | ||
| + | objecteD3 = D() | ||
| + | objecteD4 = D() | ||
| + | objecteD2.metodeD() | ||
| + | objecteD3.metodeD() | ||
| + | objecteD4.metodeD() | ||
| + | # als objectes creats prèviament no els afectaria | ||
| + | print(objecteD.d, | ||
| + | objecteD.metodeD() | ||
| + | |||
| + | |||
| + | # classe amb constructor (a Python només pot haver-hi 1 constructor de classe) | ||
| + | # self es obligatori | ||
| + | # constructor __init__ s' | ||
| + | # si l' | ||
| + | class E(): | ||
| + | def __init__(self): | ||
| + | print(" | ||
| + | |||
| + | |||
| + | objecteE = E() # en instanciar l' | ||
| + | |||
| + | |||
| + | # classe ambn constructor i atributs d' | ||
| + | class F(): | ||
| + | def __init__(self, | ||
| + | # atributs d' | ||
| + | # inicialitzem els atributs d' | ||
| + | self.atributf = f | ||
| + | print(" | ||
| + | |||
| + | |||
| + | objecteF = F(" | ||
| + | |||
| + | |||
| + | # salutacions des del constructor i salutacions des d' | ||
| + | |||
| + | # exemple complet | ||
| + | class Cotxe(): | ||
| + | """ | ||
| + | |||
| + | n_rodes = 4 # atribut de classe | ||
| + | |||
| + | def __init__(self, | ||
| + | # és habitual usar per a l' | ||
| + | self.color = color # atribut d' | ||
| + | self.velocitat = 0 # atribut d' | ||
| + | |||
| + | # mètode sense cos (sense sentències) | ||
| + | def frena(self): | ||
| + | pass | ||
| + | |||
| + | def accelera(self, | ||
| + | """ | ||
| + | self.velocitat = self.velocitat + acceleracio | ||
| + | # acceleració no duu el self al davant | ||
| + | # ja que no és un membre de la classe sinó un paràmetre de mètode | ||
| + | |||
| + | |||
| + | cotxe1 = Cotxe(" | ||
| + | print(cotxe1.n_rodes, | ||
| + | |||
| + | cotxe2 = Cotxe(" | ||
| + | cotxe2.n_rodes = 3 | ||
| + | cotxe2.frena() | ||
| + | cotxe2.accelera(50) | ||
| + | cotxe2.accelera(70) | ||
| + | print(cotxe2.n_rodes, | ||
| + | |||
| + | </ | ||