Olá pessoal!
Estou estudando classes nas aulas de objetos orientados em Python.
A seguir está um projeto de uma classe "TV" que criei junto com um programa utilizando essa classe. Encontrei essa ideia numa lista de exercício no "Python Brasil", muito boa recomendo!
Estou compartilhando aqui com o intuito de opiniões a respeito de melhora sobre o código, só para saber se estou caminhando na trilha certa haha.
Classe:
class TV:
def __init__(self, canal=1, volume=50):
self._canal = canal
self._volume = volume
def __str__(self):
return f'o canal atual é {self.canal}, e o volume atual é {self.volume}'
@property
def canal(self):
return self._canal
@canal.setter
def canal(self, novo_canal):
if type(novo_canal) == int:
if 0 < novo_canal <= 150:
self._canal = novo_canal
else:
print('Canal inválido.')
else:
print('O canal deve ser um número.')
@property
def volume(self):
return self._volume
@volume.setter
def volume(self, novo_volume):
if type(novo_volume) == int:
if 0 < novo_volume <= 100:
self._volume = novo_volume
else:
print('Canal inválido.')
else:
print('O volume deve ser um número')
def mudar_canal(self):
canal_novo = int(input("Mudar canal para: "))
self.canal = canal_novo
def mudar_volume(self):
volume_novo = int(input("Mudar volume para: "))
self.volume = volume_novo
Programa
from tv import TV
import time
tv1 = TV()
selecao = 1
roda = True
while roda:
print('\n'*5)
print(tv1)
print('\nOpções:'
'\n(1)Mudar canal'
'\n(2)Mudar volume'
'\n(3)Desligar')
selecao = int(input('Seleção: '))
if selecao == 1:
tv1.mudar_canal()
elif selecao == 2:
tv1.mudar_volume()
elif selecao == 3:
print('É hora de dar tchau ...')
break
else:
print('Selecione uma opção válida.')
time.sleep(2)