1
resposta

[Dúvida] Chamar função dentro de outra da mesma classe

Estou me aperfeiçoando em orientação a objeto e gostaria de saber se é válido chamar uma função dentro de outra na mesma classe, estou visando um código limpo e quero construir da forma mais profissional possível.

Segue código:

class ApiFlash:

    def __init__(self, api_acess):
        self.api_acess = api_acess
        
    def assign_header(self):
            self.url = api_acess['url'] + '/integration/report'
            self.headers = {'Ticket': str(api_acess['ticket_hash'])}
            self.parameters = {'startDate': self.start_date, 'endDate': self.end_date}

    def get_reports(self):
        response = requests.get(self.url, headers=self.headers, params=self.parameters)
        print('reports received')
        response_json = json.loads(response.content)
        return response_json['data']['reports']

Nesse caso queria saber se preciso chamar as duas funções no corpo do código ou seria mais válido chamar a função assign_header dentro de get_reports.

1 resposta

Olá Marcus!

É perfeitamente válido chamar uma função dentro de outra na mesma classe. Na verdade, essa é uma prática comum em programação orientada a objetos que deixa seu código mais expressivo (mais fácil de entender, se for bem organizado).

Agora, no seu exemplo, fiquei com a impressão que a função assing_header deve ser chamado no __init__ pois faz parte da inicialização do objeto, mas posso está equivocado.

Espero ter ajudado e bons estudos!

abs, Nico