0
I am early in python and I am having a difficulty in the following code:
class Gerador:
def __init__(self, nome, potencia, capacidade_energia, capacidade_combustivel):
self.__nome = nome
self.__status = None
self.__potencia = potencia
self.__capacidade_energia = capacidade_energia
self.__tanque_combustivel = 0
self.__capacidade_combustivel = capacidade_combustivel
def abastecer(self, litros): # abastecer geradores
if self.__tanque_combustivel + litros <= self.__capacidade_combustivel:
self.__tanque_combustivel += litros
print("\nTanque abastecido")
else:
print("Erro. Ultrapassou a capacidade")
def acionamento(self, estado, nome_gerador): # acionar geradores
self.__nome == nome_gerador
if nome_gerador == 'G1':
print('\nATENÇÃO\nG1 não é gerenciado manualmente!')
elif estado == '1':
estado = 'ligado'
print(nome_gerador, 'foi ligado!')
elif estado == '2':
estado = 'desligado'
print(nome_gerador, 'foi desligado')
else:
print('opção invalida')
def get(self, nome):
return self.__nome
def status_gerador(self, geradores, estado):
for n in geradores:
print (n, geradores[n],[estado])
def get_status(self):
return self.__status
#programa principal
g1 = Gerador("G1", 2000, 1000, 300)
g2 = Gerador("G2", 1300, 530, 435)
g3 = Gerador("G3", 1200, 520, 420)
g4 = Gerador("G4", 1100, 510, 410)
# abastecimento dos geradores
nome_gerador = input('\nInforme o Nome do Gerador: ')
nome_gerador = nome_gerador.upper()
litros = int(input ('\nQuantidade de Litros: '))
if nome_gerador == 'G1':
g1.abastecer(litros)# chama o metodo do objeto correspondente
if nome_gerador == 'G2':
g2.abastecer(litros)
if nome_gerador == 'G3':
g3.abastecer(litros)
if nome_gerador == 'G4':
g4.abastecer(litros)
# acionamento dos geradores
nome_gerador = input('\nnome do gerador: ')
nome_gerador = nome_gerador.upper()
print('\ndeseja ligar o gerador ' +nome_gerador+'?\n')
print('1.sim \n2.não\n')
estado = input('Digite: ')
estado = estado.lower()
if nome_gerador == 'G1':
g1.acionamento(estado, nome_gerador)
elif nome_gerador == 'G2':
g2.acionamento(estado, nome_gerador)
elif nome_gerador == 'G3':
g3.acionamento(estado, nome_gerador)
elif nome_gerador == 'G4':
g4.acionamento(estado, nome_gerador)
else:
print('O gerador não existe')
# status dos geradores
print('\nSTATUS DOS GERADORES:')
geradores = {'G1': g1.get_status(), 'G2': g2.get_status(), 'G3': g3.get_status(), 'G4': g4.get_status()}
g1.status_gerador(geradores, estado)
when I call the function "status_generator" it brings me the dictionary with results like, "None" and the option type when the function "drive" was called, when in fact what was expected was the name of the generator and its update (on or off), ex: "G2 on". It is important to make it clear that I do not want the complete solution of my problem, just a "north" to follow, thanks in advance for the attention!
I recommend studying a little more object orientation, because its class
Gerador
not making much sense, especially the methodsacionamento
andstatus_gerador
.– Gabriel