Skip to content

Classes em Python: Uma Introdução Prática

    classes

    As classes são um dos conceitos fundamentais da programação orientada a objetos (POO) em Python. Elas permitem organizar e estruturar seu código de uma maneira mais eficiente e reutilizável. Neste artigo, vamos explorar vários aspectos das classes Python, desde o básico até conceitos mais avançados. Vamos começar!

    1) Classe Básica

    A classe mais simples que podemos criar em Python:

    class Cachorro:
        pass
    
    cachorro = Cachorro()  # inicialização

    2) Classe Básica com Método Simples

    Em vez de apenas usar pass e não fazer nada, vamos adicionar um método simples:

    class Cachorro:
        def latir(self):
            print("au au")
    
    cachorro = Cachorro()
    cachorro.latir()  # au au

    3) Classe Básica com Método __init__

    Vamos adicionar um método __init__ que nos permite personalizar nossa classe e atribuir valores a determinados atributos.

    class Cachorro:
        def __init__(self, nome, idade):
            self.nome = nome
            self.idade = idade
    
        def latir(self):
            print("au au")
    
    cachorro1 = Cachorro("Rocky", 4)
    cachorro2 = Cachorro("Lucky", 5)

    4) Classe que Herda de Outra Classe

    Ao usar a sintaxe class Filho(ClassePai), fazemos com que a classe Filho herde os atributos e métodos da classe ClassePai.

    class Animal:
        def falar(self):
            print("olá")
    
    class Cachorro(Animal):
        pass
    
    cachorro = Cachorro()
    cachorro.falar()  # olá

    5) Classe que Herda de Outra Classe com __init__

    Se nossa classe filha tiver um método __init__ diferente da classe pai, podemos usar super().__init__ dentro da classe filha para chamar o método __init__ da classe pai.

    class Retangulo:
        def __init__(self, comprimento, largura):
            self.comprimento = comprimento
            self.largura = largura
    
        def area(self):
            return self.comprimento * self.largura
    
    class Quadrado(Retangulo):
        def __init__(self, lado):
            super().__init__(lado, lado)
    
    retangulo = Retangulo(5, 4)
    print(retangulo.area())  # 20
    
    quadrado = Quadrado(3)
    print(quadrado.area())   # 9

    6) Dataclasses

    Cansado de escrever métodos __init__? Experimente as dataclasses!

    from dataclasses import dataclass
    
    @dataclass
    class Cachorro:
        nome: str
        idade: int
    
        def latir(self):
            print(f"au au nome={self.nome} idade={self.idade}")
    
    cachorro = Cachorro("Rocky", 4)
    cachorro.latir()  # au au nome=Rocky idade=4

    7) Criando uma Classe com type()

    Você pode criar uma classe sem usar a palavra-chave class usando a função type().

    def __init__(self, nome, idade):
        self.nome = nome
        self.idade = idade
    
    Cachorro = type("Cachorro", (Animal,), {"__init__": __init__})
    
    cachorro = Cachorro("Rocky", 4)

    Conclusão

    Espero que este artigo tenha sido útil para você entender melhor o conceito de classes em Python. Elas são uma parte essencial da programação orientada a objetos e podem ajudar a organizar seu código de maneira mais eficiente e legível. À medida que você avança em seus estudos de Python, continue explorando e praticando o uso de classes para se tornar um programador mais habilidoso e versátil.

    Documentação Oficial de Classes em Python

    https://docs.python.org/3/tutorial/classes.html

    Tags:

    Leave a Reply

    Your email address will not be published. Required fields are marked *