Ir ao conteúdo
  • Cadastre-se

Python Função do python não me retornar o valor


Ir à solução Resolvido por herbertbahia,

Posts recomendados

Boa noite, estou tentando imprimir o resultado de uma função, porém me retorna o seguinte resultado

 

<bound method Variaveis.valor_x1 of <modelos.Variaveis object at 0x0000029AD840E3D0>>

 

imagem_2022-12-29_220907240.png.ec094cb3d17cda27cdfff3d275236f6f.png

 

# Deve calcular uma equação do segundo grau
from modelos import Variaveis

variaveis = Variaveis()

# Atribui os valores das variaveis
variaveis.a = int(input("Insira o valor de A: "))
variaveis.b = int(input("Insira o valor de B: "))
variaveis.c = int(input("Insira o valor de C: "))

print(variaveis.valor_x1)
print(variaveis.valor_x2)

 

import math
class Variaveis:    
    
    @property
    def a(self):
        return self.__a
    
    @a.setter
    def a(self, a):
        self.__a = a
        
    @property
    def b(self):
        return self.__b
    
    @b.setter
    def b(self, b):
        self.__b = b
        
    @property
    def c(self):
        return self.__c
    
    @c.setter
    def c(self, c):
        self.__c = c
        
    # Aqui vai calcular o delta
    def __delta(self):
        delta = pow(self.__b, 2) - 4 * self.__a * self.__c;
        return delta
    
    # Calcula o x1 da equação
    def valor_x1(self):
        
        delta = math.sqrt(self.__delta)
        
        return ((-1 * (self.__b)) - delta) / 2 * self.__a;
        
        
    # Calcula o x2 da equação
    def valor_x2(self):
        
        delta = math.sqrt(self.__delta)
        
        return ((-1 * (self.__b)) - delta) / 2 * self.__a;

 

Link para o comentário
Compartilhar em outros sites

O código corrigido ficaria assim:

# Cria uma instância da classe Variaveis
variaveis = Variaveis()

# Atribui os valores das variaveis
variaveis.a = int(input("Insira o valor de A: "))
variaveis.b = int(input("Insira o valor de B: "))
variaveis.c = int(input("Insira o valor de C: "))

# Usa o operador de chamada de método (`.`) para acessar o resultado dos métodos
print(variaveis.valor_x1())
print(variaveis.valor_x2())

Isso deve resolver o problema e permitir que você imprima o resultado das chamadas dos métodos valor_x1 e valor_x2.

Link para o comentário
Compartilhar em outros sites

  • Solução

O código estava retornando um "bound method" porque você está tentando chamar uma função como se fosse uma propriedade (sem os parênteses).

Para chamar uma função, é necessário usar os parênteses, assim:

print(variaveis.valor_x1()) print(variaveis.valor_x2())

Isso vai chamar as funções e retornar os valores corretos.

Além disso, no código da classe Variaveis, ambas as funções valor_x1 e valor_x2 possuem o mesmo código. Isso pode ser um erro e pode levar a resultados incorretos. É preciso verificar se o código está correto e, se necessário, corrigi-lo.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!