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

Dúvidas exercício IMC chamada de método

Pessoal, Estou com a classe pessoa conforme abaixo. Se eu instancio o objeto pessoa e chamo o método calculaIMC direto do objeto (pessoa.calculaIMC()) funciona, porém quando eu chamo o método imc (pessoa.imc()) eu recebo um erro informando que o método calculaIMC não está declarado.

alguém sabe me dizer o por que desse erro?

NameError: global name 'calculaIMC' is not defined

```class Pessoa(object): def init(self, nome, peso, altura): self.nome = nome self.peso = float(peso) self.altura = float(altura)

def calculaIMC(peso,altura): val_imc = (self.peso/ (self.altura**2)) return val_imc

def imc(self): val_imc = calculaIMC(self.peso, self.altura) print 'O IMC de %s e %s.' % (self.nome, val_imc)] ```

1 resposta
solução!

Conseui resolver.

Na chamada do método eu deveria colocar o self, a exemplo do que é feito na chamada de varáveis. Com isso o problema foi resolvido. Segue abaixo o método final.

```class Pessoa(object):

def init(self, nome, peso, altura): self.nome = nome self.peso = float(peso) self.altura = float(altura)

def calculaIMC(self, peso, altura): val_imc = (peso/ (altura**2)) return val_imc

def imc(self): val_imc = self.calculaIMC(self.peso,self.altura) print 'O IMC de %s e %s.' % (self.nome, val_imc) ```