Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Classe e Struct

Fala gente, queria saber se existe qualquer relação entre as classes do Python com as structs em C. Estou aprendendo C na faculdade e pra mim parece que ambos são iguais.

1 resposta
solução!

Olá, Renato! Tudo bem?

As classes em Python e as structs em C têm algumas semelhanças, mas também algumas diferenças. Ambas são utilizadas para definir estruturas de dados que podem conter diferentes tipos de variáveis. No entanto, as classes em Python são mais flexíveis e poderosas do que as structs em C.

Uma das principais diferenças é que as classes em Python podem conter métodos, que são funções que podem ser chamadas para realizar ações específicas na classe. Já as structs em C não possuem essa funcionalidade.

Além disso, as classes em Python permitem a herança, ou seja, uma classe pode herdar atributos e métodos de outra classe. Isso não é possível com as structs em C.

Vou te dar um exemplo para ilustrar melhor a diferença. Suponha que você queira criar uma estrutura de dados para representar uma pessoa, com nome, idade e altura.

Em C, você poderia fazer algo assim:

struct Pessoa {
    char nome[50];
    int idade;
    float altura;
};

Você teria uma estrutura simples com os atributos nome, idade e altura. Porém, não seria possível adicionar métodos para realizar ações específicas com essa estrutura.

Já em Python, você poderia criar uma classe para representar a pessoa da seguinte forma:

class Pessoa:
    def __init__(self, nome, idade, altura):
        self.nome = nome
        self.idade = idade
        self.altura = altura
    
    def saudacao(self):
        print(f"Olá, meu nome é {self.nome} e eu tenho {self.idade} anos.")

Nesse exemplo, a classe Pessoa possui um construtor __init__ que recebe os atributos nome, idade e altura e os armazena nos atributos da classe. Além disso, a classe possui um método saudacao que imprime uma mensagem de saudação com o nome e a idade da pessoa.

Dessa forma, você pode criar objetos da classe Pessoa e chamar o método saudacao para cada objeto, como por exemplo:

pessoa1 = Pessoa("Renato", 25, 1.75)
pessoa1.saudacao()  # Saída: "Olá, meu nome é Renato e eu tenho 25 anos."

Como você pode ver, as classes em Python oferecem mais flexibilidade e poder para criar estruturas de dados e realizar ações específicas com essas estruturas. No entanto, é importante ressaltar que as structs em C também têm sua utilidade e são amplamente utilizadas nessa linguagem.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.