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.