O que são Métodos e Atributos e Como Eles Funcionam?
Na última lição, você aprendeu sobre classes e como elas funcionam como modelos para criar objetos.
Aqui, vamos nos aprofundar em atributos e métodos.
Vamos dar uma olhada mais de perto nos atributos primeiro e depois nos métodos.
Atributos são variáveis que pertencem a um objeto, então eles armazenam dados. Existem dois tipos de atributos: atributos de instância e atributos de classe.
Os atributos de instância são únicos para cada objeto criado a partir de uma classe e você geralmente os define com o método
__init__. Os atributos de classe, por outro lado, pertencem à própria classe e são compartilhados por todas as instâncias dessa classe.
Para acessar um atributo, você usa a notação de ponto.
Aqui estão exemplos de atributos de instância e de classe e como acessá-los a partir de objetos:
class Dog:
species = "French Bulldog" # Class attribute
def __init__(self, name):
self.name = name # Instance attribute
print(Dog.species) # French Bulldog
dog1 = Dog("Jack")
print(dog1.name) # Jack
print(dog1.species) # French Bulldog
dog2 = Dog("Tom")
print(dog2.name) # Tom
print(dog2.species) # French Bulldog
Observe que você pode acessar atributos de classe diretamente da própria classe, mas é necessário criar um objeto e passar dados para ele primeiro antes de poder acessar atributos de instância.
Carros são outro bom exemplo, já que todos os carros têm um modelo e cor:
class Car:
def __init__(self, color, model):
self.color = color
self.model = model
car_1 = Car("red", "Toyota Corolla")
car_2 = Car("green", "Lamborghini Revuelto")
print(car_1.model) # Toyota Corolla
print(car_2.model) # Lamborghini Revuelto
print(car_1.color) # red
print(car_2.color) # green
Métodos são funções definidas dentro de uma classe. Com eles, qualquer objeto definido a partir de uma classe pode executar ações que operam ou modificam seus próprios dados. Você também acessa um método com notação de ponto.
Por exemplo, cães podem latir. Então podemos ter um método bark na classe Dog como você viu em uma lição anterior:
class Dog:
species = "French Bulldog"
def __init__(self, name):
self.name = name
def bark(self):
return f"{self.name} says woof woof!"
jack = Dog("Jack")
jill = Dog("Jill")
print(jack.bark()) # Jack says woof woof!
print(jill.bark()) # Jill says woof woof!
Uma classe Car também pode ter um método describe:
class Car:
def __init__(self, color, model):
self.color = color # Instance attribute
self.model = model # Instance attribute
def describe(self):
return f"This car is a {self.color} {self.model}"
car_1 = Car("red", "Toyota Corolla")
car_2 = Car("green", "Lamborghini Revuelto")
print(car_1.describe()) # This car is a red Toyota Corolla
print(car_2.describe()) # This car is a green Lamborghini RevueltoEste módulo não possui perguntas. Marque como concluído.