Anatomia unei clase: atribute și metode

Programare orientată pe obiecte în Python

Alex Yarosh

Content Quality Analyst @ DataCamp

O clasă de bază

class Customer:

# code for class goes here
pass
  • class <name>: inițiază o definiție de clasă
  • codul din interiorul class este indentat
  • utilizați pass pentru a crea o clasă „goală"
c1 = Customer()
c2 = Customer()
  • utilizați ClassName() pentru a crea un obiect al clasei ClassName
Programare orientată pe obiecte în Python

Adăugarea metodelor la o clasă

class Customer:  

    def identify(self, name):   
      print("I am Customer " + name)
  • definiția metodei = definiția unei funcții în interiorul clasei
  • utilizați self ca primul argument în definiția metodei
cust = Customer()
cust.identify("Laura")
I am Customer Laura
  • ignorați self când apelați o metodă pe un obiect
Programare orientată pe obiecte în Python
class Customer:  

    def identify(self, name):   
      print("I am Customer " + name)

cust = Customer()
cust.identify("Laura")

Ce este self?

  • clasele sunt șabloane; cum se face referire la datele unui anumit obiect?
  • self reprezintă un obiect particular în definiția clasei
  • trebuie să fie primul argument al oricărei metode
  • Python gestionează self când metoda este apelată dintr-un obiect:

cust.identify("Laura") va fi interpretat ca Customer.identify(cust, "Laura")

Programare orientată pe obiecte în Python

Avem nevoie de atribute

  • Încapsulare: gruparea datelor cu metodele care operează asupra lor
  • Ex. numele unui Customer ar trebui să fie un atribut

  $$\text{\Large{Atributele se creează prin atribuire (=) în metode}}$$

Programare orientată pe obiecte în Python

Adăugarea unui atribut la o clasă

class Customer:  
    # set the name attribute of an object to new_name
    def set_name(self, new_name):

# Create an attribute by assigning a value self.name = new_name # <-- will create .name when set_name is called
cust = Customer()                   # <--.name doesn't exist here yet

cust.set_name("Lara de Silva") # <--.name is created and set to "Lara de Silva"
print(cust.name) # <--.name can be used
Lara de Silva
Programare orientată pe obiecte în Python

Versiunea veche

class Customer:  



    # Using a parameter
    def identify(self, name):   
      print("I am Customer" + name)
cust = Customer()

cust.identify("Eris Odoro")
I am Customer Eris Odoro

Versiunea nouă

class Customer:  
   def set_name(self, new_name): 
      self.name = new_name

    # Using .name from the object it*self*
    def identify(self):     
      print("I am Customer" + self.name)
cust = Customer()
cust.set_name("Rashid Volkov")
cust.identify()
I am Customer Rashid Volkov
Programare orientată pe obiecte în Python

Să exersăm!

Programare orientată pe obiecte în Python

Preparing Video For Download...