7. Classes e Objetos em Python
As classes e objetos são os dois principais aspectos da programação orientada a objetos. Uma classe é um modelo para a criação de objetos (uma instância particular de uma classe), e um objeto é uma instância de uma classe.
7.1 O que é uma Classe?
Uma classe é um protótipo para a criação de objetos em Python. É uma estrutura lógica que tem alguns atributos e métodos definidos. Uma classe é definida usando a palavra-chave class
.
class MyClass: x = 5
Neste exemplo, criamos uma classe chamada MyClass
, que tem um atributo chamado x
com o valor 5.
7.2 O que é um Objeto?
Um objeto é uma instância de uma classe. Quando uma classe é definida, apenas a descrição do objeto é definida. Portanto, nenhum espaço de memória é alocado. A criação de um objeto é feita usando a função constructor
da classe. Este método é chamado quando um objeto é criado a partir de uma classe e permite que a classe inicialize os atributos do objeto.
p1 = MyClass() print(p1.x)
Neste exemplo, p1
é um objeto da classe MyClass
que tem um atributo chamado x
.
7.3 A função __init__()
Em Python, a função __init__()
é o método construtor que é chamado quando um objeto é criado a partir de uma classe. Este método é útil para fazer qualquer inicialização que você queira fazer com o seu objeto. Quando você cria um método __init__()
, você está dizendo ao Python que quando um objeto é criado a partir desta classe, o objeto deve ser inicializado com os valores especificados.
class Person: def __init__(self, name, age): self.name = name self.age = age p1 = Person("John", 36) print(p1.name) print(p1.age)
Neste exemplo, Person
é uma classe com a função __init__()
que toma dois argumentos, e cria atributos para o nome e a idade.
7.4 Métodos de Objetos
Os objetos também podem conter métodos. Os métodos em objetos são funções que pertencem ao objeto.
class Person: def __init__(self, name, age): self.name = name self.age = age def myfunc(self): print("Hello my name is " + self.name) p1 = Person("John", 36) p1.myfunc()
Neste exemplo, nós definimos um método na classe Person
chamado myfunc
que imprime uma linha de texto.
7.5 O parâmetro self
O parâmetro self
é uma referência à instância atual da classe e é usado para acessar variáveis que pertencem à classe. Ele não precisa ser nomeado self
, você pode chamá-lo como quiser, mas tem que ser o primeiro parâmetro de qualquer função na classe.
7.6 Modificando Objetos
Você pode modificar propriedades em objetos como este:
p1.age = 40
Ou você pode deletar propriedades do objeto:
del p1.age
Você também pode deletar objetos:
del p1
Esses são os conceitos básicos de classes e objetos em Python. Eles são fundamentais para a programação orientada a objetos em Python e, quando combinados com outros conceitos como herança e polimorfismo, fornecem uma maneira poderosa de estruturar seu código.