A resposta 2e 3 dada na resposta do instrutor está errada:
- Em Python, não é permitido colocar um parâmetro com valor padrão antes de parâmetros que não têm valor padrão.
def init(self, nome, categoria, ativo=False, capacidade, nota_avaliacao):isso dá erro:
def init(self, nome, categoria, ativo=False, capacidade, nota_avaliacao):
^^^^^^^^^^
SyntaxError: parameter without a default follows parameter with a default
- Além da resposta 3 apresentar o mesmo erro anterior, ainda foi implementada de maneira erra, pois supostamente o enunciando pede a implementação de 2 parâmetros obrigatórios no construtor, porém foram colocado 4 parâmetros obrigatórios no construtor e 1 opcional.
inclusive a implementação sugerida levanta erro:
novo_restaurante = Restaurante(nome="Santa Marmita", categoria="Fast Food")
TypeError: Restaurante.init() missing 2 required positional arguments: 'capacidade' and 'nota_avaliacao'
# 2) Crie uma classe chamada Restaurante com os atributos nome, categoria, ativo e crie mais 2 atributos. Instancie um restaurante e atribua valores aos seus atributos.
class Restaurante:
def __init__(self, nome, categoria, ativo=False, capacidade, nota_avaliacao):
self.nome = nome
self.categoria = categoria
self.ativo = ativo
self.capacidade = capacidade
self.nota_avaliacao = nota_avaliacao
# Instanciando um restaurante e atribuindo valores aos seus atributos
restaurante_exemplo = Restaurante(nome='Comida Boa', categoria='Gourmet', ativo=True, capacidade=50, nota_avaliacao=4.5)
# 3) Modifique a classe Restaurante adicionando um construtor que aceita nome e categoria como parâmetros e inicia ativo como False por padrão. Crie uma instância utilizando o construtor.
class Restaurante:
def __init__(self, nome, categoria, ativo=False, capacidade, nota_avaliacao):
self.nome = nome
self.categoria = categoria
self.ativo = ativo
self.capacidade = capacidade
self.nota_avaliacao = nota_avaliacao
# Instanciando um restaurante utilizando o construtor
novo_restaurante = Restaurante(nome='Santa Marmita', categoria='Fast Food')
Minhas respostas:
# Implemente uma classe chamada Carro com os atributos básicos, como modelo, cor e ano. Crie uma instância dessa classe e atribua valores aos seus atributos.
class Car:
def __init__(self, model: str, color: str, year: int):
self.model = model
self.color = color
self.year = year
def __str__(self):
return f"Model: {self.model} | color: {self.color} | year {self.year}"
corsa = Car("Corsa", "read", 2009)
print(corsa)
# Crie uma classe chamada Restaurante com os atributos nome, categoria, ativo e crie mais 2 atributos. Instancie um restaurante e atribua valores aos seus atributos.
class Restaurant:
def __init__(self, name: str, category: str, stars: int, city: str, active=False):
self.name = name
self.category = category
self.stars = stars
self.city = city
self.active = active
fazendinha = Restaurant(
name="Fazendinha",
category="Comida Mineira",
stars=4,
city="Serra do Cipó",
active=True,
)
print(fazendinha.name)
print(fazendinha.city)
print(fazendinha.active)
# Modifique a classe Restaurante adicionando um construtor que aceita nome e categoria como parâmetros e inicia ativo como False por padrão. Crie uma instância utilizando o construtor.
# Adicione um método especial __str__ à classe Restaurante para que, ao imprimir uma instância, seja exibida uma mensagem formatada com o nome e a categoria. Exiba essa mensagem para uma instância de restaurante.
class Restaurant:
def __init__(self, name: str, category: str):
self.name = name
self.category = category
self.active = False
def __str__(self):
return f"Restaurant: {self.name} | Category: {self.category}"
italianinho = Restaurant(name="Italianinho", category="Italian Food")
print(italianinho)
# Crie uma classe chamada Cliente e pense em 4 atributos. Em seguida, instancie 3 objetos desta classe e atribua valores aos seus atributos através de um método construtor.
class Client:
def __init__(self, name: str, age: int, city: str, phone: str):
self.name = name
self.age = age
self.city = city
self.phone = phone
def __str__(self):
return f"Client: {self.name}, age: {self.age}, city: {self.city}, phone: {self.phone}"
leonardo = Client("Leonardo Siqueira", 33, "Juatuba", "9999-9999")
lindalva = Client("Lindalva Souza", 55, "Sorocaba", "8888-8888")
mario = Client("Mario Santos", 27, "Santos", "7777-7777")
print(leonardo)
print(lindalva)
print(mario)