# 01
class Veiculo:
def __init__(self, marca, ano):
self.marca = marca
self.ano = ano
def detalhes(self):
return f"Marca: {self.marca}, Ano: {self.ano}"
class Carro(Veiculo):
def __init__(self, marca, ano, portas):
super().__init__(marca, ano)
self.portas = portas
def detalhes(self):
return f"{super().detalhes()}, Portas: {self.portas}"
carro = Carro("Ford", 2020, 4)
print(carro.detalhes()) # Saída: Marca: Ford, Ano: 2020, Portas: 4
# 02
class Animal:
def comer(self):
return "Está comendo."
class Voador:
def voar(self):
return "Está voando."
class Morcego(Animal, Voador):
def detalhes(self):
return f"{self.comer()} {self.voar()}"
morcego = Morcego()
print(morcego.detalhes()) # Saída: Está comendo. Está voando.
# 03
class Contador:
def __init__(self, limite):
self.limite = limite
self.atual = 0
def __iter__(self):
return self
def __next__(self):
if self.atual < self.limite:
valor = self.atual
self.atual += 1
return valor
else:
raise StopIteration
contador = Contador(5)
for num in contador:
print(num) # Saída: 0, 1, 2, 3, 4
# 04
class Forma:
def area(self):
return 0
class Quadrado(Forma):
def __init__(self, lado):
self.lado = lado
def area(self):
return self.lado ** 2
class Circulo(Forma):
def __init__(self, raio):
self.raio = raio
def area(self):
return 3.14 * (self.raio ** 2)
formas = [Quadrado(4), Circulo(3)]
for forma in formas:
print(forma.area()) # Saída: 16, 28.26
# 05
def imprimir_area(forma):
print(f"A área é: {forma.area()}")
imprimir_area(Quadrado(4)) # Saída: A área é: 16
imprimir_area(Circulo(3)) # Saída: A área é: 28.26
# 06
class Pessoa:
contador = 0 # Atributo de classe
def __init__(self, nome):
self.nome = nome # Atributo de instância
Pessoa.contador += 1
p1 = Pessoa("Alice")
p2 = Pessoa("Bob")
print(Pessoa.contador) # Saída: 2 (escopo de classe)
print(p1.nome) # Saída: Alice (escopo de instância)
# 07
class Calculadora:
historico_somas = [] # Atributo de classe
def soma(self, a, b):
resultado = a + b # Variável local
self.historico_somas.append(resultado)
return resultado
calc = Calculadora()
print(calc.soma(2, 3)) # Saída: 5
print(calc.historico_somas) # Saída: [5]
# 08
class Pares:
def __init__(self, limite):
self.limite = limite
self.atual = 0
def __iter__(self):
return self
def __next__(self):
if self.atual <= self.limite:
valor = self.atual
self.atual += 2
return valor
else:
raise StopIteration
for num in Pares(6):
print(num) # Saída: 0, 2, 4, 6
# 09
class Cachorro:
def falar(self):
return "Oi, eu sou o Rex!"
class Gato:
def falar(self):
return "Oi, eu sou a Mili"
def animal_fala(animal):
print(animal.falar())
animal_fala(Cachorro()) # Saída: Au Au
animal_fala(Gato()) # Saída: Miau
# 10
class Pai:
valor = 10
class Filho(Pai):
valor = 20
print(Pai.valor) # Saída: 10 (atributo da classe Pai)
print(Filho.valor) # Saída: 20 (atributo da classe Filho)
To embed this project on your website, copy the following code and paste it into your website's HTML: