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, | ||
+ | |||
+ | </ | ||