Klassens anatomi: attribut och metoder

Introduktion till objektorienterad programmering i Python

George Boorman

Curriculum Manager, DataCamp

En Customer-klass

class Customer:

# Code for class goes here
pass
  • class <name>: startar en klassdefinition
  • Kod inuti class är indenterad
  • Använd pass för att skapa en "tom" klass
c_one = Customer()
c_two = Customer()
  • Använd ClassName() för att skapa ett objekt av klassen ClassName
Introduktion till objektorienterad programmering i Python

Lägg till metoder i en klass

class Customer:  

def identify(self, name): print("I am Customer " + name)
  • Metoddefinition = funktionsdefinition inuti en klass
  • Använd self som första argument i metoddefinitionen
cust = Customer()
cust.identify("Laura")
I am Customer Laura
  • Ignorera self när du anropar en metod på ett objekt
Introduktion till objektorienterad programmering i Python
class Customer:  
    def identify(self, name):
        print("I am Customer " + name)

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

Vad är self?

  • Klasser är mallar
  • self ska vara det första argumentet i varje metod
  • self är en platshållare för ett (ännu inte skapat) objekt
  • cust.identify("Laura") tolkas som Customer.identify(cust, "Laura")
Introduktion till objektorienterad programmering i Python

Vi behöver attribut

  • OOP samlar data med metoder som opererar på datan
    • Customers namn bör vara ett attribut

 

$$\text{\Large{Attribut skapas via tilldelning (=) i metoder}}$$

Introduktion till objektorienterad programmering i Python

Lägg till ett attribut i en klass

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 # Will create .name when set_name is called self.name = new_name
# Create an object # .name doesn't exist here yet cust = Customer()
# .name is created and set to "Lara de Silva" cust.set_name("Lara de Silva")
print(cust.name)
Lara de Silva
Introduktion till objektorienterad programmering i Python

Gammal version

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 

Ny version

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
Introduktion till objektorienterad programmering i Python

Nu kör vi en övning!

Introduktion till objektorienterad programmering i Python

Preparing Video For Download...