Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Python - Projeto em estatística

Olá, pessoal!

Estou estudando Python e tentando criar uma classe que faça o estudo estatístico de um conjunto de dados. Comecei criando uma função de cálculo de média dentro da classe. Mas ao tentar criar a próxima função, no caso a de desvio médio, me deparei com uma dúvida.

Como faço para chamar uma função da própria classe dentro de outra função da mesma classe?

class Dados:

    def __init__(self, n):
        print("Construindo objeto ... {}".format(self))
        self.__n = n
        print("Lista com {} elementos".format(self.__n))
        self.__lista = []
        for numero in range(self.__n):
            self.__lista.append(int(input("Digite o valor")))
        print(self.__lista)

    def media(self):
        somatoria = 0
        for k in range(self.__n):
            somatoria += self.__lista[k]
        media = somatoria/self.__n
        print("A media dos dados é igual a {}".format(media))

    def dm(self):
        somatoria = 0
        for k in range(self.__n):
            somatoria += abs(self.__lista[k] - XXXX)
        dm = somatoria / self.__n
        print(dm)

Nesse "XXXX" final eu queria poder chamar a função "media()" que defini anteriormente.

1 resposta
solução!

Oi, Adriano! Como você está?

Nesse caso, você pode utilizar o parâmetro self, que representa a instância atual da classe. Chamando self.media() dentro da função dm(), a função media() será executada e seu resultado será utilizado no cálculo do desvio médio.

Acredito que, se aprofundar mais no entendimento da programação orientada a objetos, você possa se interessar pelo curso Python: entendendo a Orientação a Objetos.

Espero que dê tudo certo!

Abração.