Anatomia da classe: atributos e métodos

Introdução à programação orientada a objetos em Python

George Boorman

Curriculum Manager, DataCamp

Uma classe Customer

class Customer:

# Code for class goes here
pass
  • class <name>: inicia a definição de uma classe
  • O código dentro de class é indentado
  • Use pass para criar uma classe “vazia”
c_one = Customer()
c_two = Customer()
  • Use ClassName() para criar um objeto da classe ClassName
Introdução à programação orientada a objetos em Python

Adicionar métodos a uma classe

class Customer:  

def identify(self, name): print("I am Customer " + name)
  • Definição de método = função definida dentro da classe
  • Use self como primeiro argumento do método
cust = Customer()
cust.identify("Laura")
I am Customer Laura
  • Ignore self ao chamar um método no objeto
Introdução à programação orientada a objetos em Python
class Customer:  
    def identify(self, name):
        print("I am Customer " + name)

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

O que é self?

  • Classes são modelos
  • self deve ser o primeiro argumento de qualquer método
  • self representa um objeto (ainda não criado)
  • cust.identify("Laura") será interpretado como Customer.identify(cust, "Laura")
Introdução à programação orientada a objetos em Python

Precisamos de atributos

  • POO une dados e métodos que operam neles
    • O nome do Customer deve ser um atributo

 

$$\text{\Large{Atributos são criados por atribuição (=) em métodos}}$$

Introdução à programação orientada a objetos em Python

Adicionar um atributo à classe

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
Introdução à programação orientada a objetos em Python

Versão antiga

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 

Nova versão

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
Introdução à programação orientada a objetos em Python

Vamos praticar!

Introdução à programação orientada a objetos em Python

Preparing Video For Download...