Tentei utilizar algumas outras abordagens que aprendi nas aulas passadas. Esse código está respeitando os princípios da responsabilidade única? Aceito sugestões de melhorias! class Interruptor: status = False def __init__(self, comodo: str) -> None: self.comodo = comodo def __imprime_estado(self, estado): self.estado = estado print(self.estado) def acender(self) -> None: if self.status: self.__imprime_estado(f'A luz do {self.comodo} já está acesa.') else: self.status = True self.__imprime_estado(f'A luz do {self.comodo} foi acesa.') def apagar(self) -> None: if not self.status: self.__imprime_estado(f'A luz do {self.comodo} já está apagada.') else: self.status = False self.__imprime_estado(f'A luz do {self.comodo} foi apagada.') class Pessoa: def __init__(self, nome: str) -> None: self.nome = nome def acender_luzes(self, interruptor: Interruptor) -> None: interruptor.acender()
voce poderia fazer assim: def __init__(self, comodo: str) -> None: self.comodo = comodo self.aceso = False como ele vai ser um metodo para o objeto, nao tem necessidade de criar uma variavel de classe. De resto esta com uma boa logica, e respeita a responsabilidade unica, pos vc criou um metodo para para clausura
Excelente aula, onde posso encontrar mais exerícios ?
Tentei utilizar algumas outras abordagens que aprendi nas aulas passadas. Esse código está respeitando os princípios da responsabilidade única? Aceito sugestões de melhorias!
class Interruptor:
status = False
def __init__(self, comodo: str) -> None:
self.comodo = comodo
def __imprime_estado(self, estado):
self.estado = estado
print(self.estado)
def acender(self) -> None:
if self.status:
self.__imprime_estado(f'A luz do {self.comodo} já está acesa.')
else:
self.status = True
self.__imprime_estado(f'A luz do {self.comodo} foi acesa.')
def apagar(self) -> None:
if not self.status:
self.__imprime_estado(f'A luz do {self.comodo} já está apagada.')
else:
self.status = False
self.__imprime_estado(f'A luz do {self.comodo} foi apagada.')
class Pessoa:
def __init__(self, nome: str) -> None:
self.nome = nome
def acender_luzes(self, interruptor: Interruptor) -> None:
interruptor.acender()
def apagar_luzes(self, interruptor: Interruptor) -> None:
interruptor.apagar()
pessoa1 = Pessoa('user1')
interruptor1 = Interruptor('Quarto')
pessoa1.acender_luzes(interruptor1)
pessoa1.apagar_luzes(interruptor1)
pessoa1.acender_luzes(interruptor1)
pessoa1.acender_luzes(interruptor1)
voce poderia fazer assim:
def __init__(self, comodo: str) -> None:
self.comodo = comodo
self.aceso = False
como ele vai ser um metodo para o objeto, nao tem necessidade de criar uma variavel de classe. De resto esta com uma boa logica, e respeita a responsabilidade unica, pos vc criou um metodo para para clausura
@@flexmaxedits729 Obrigado, Flex!
@@prugzr De nada meu querido