我正在尝试使用python中的类计算器。我试着用这种方式解决:
class Person(object):
def __init__(self,name,age,weight,height):
self.name = name
self.age = age
self.weight = float(weight)
self.height = float(height)
def get_bmi_result(self):
bmi = (self.weight)/float((self.height*30.48)*(self.height*30.48))
print bmi
if bmi <= 18.5:
return "underweight"
elif bmi>18.5 and bmi<25:
return "normal"
elif bmi>30:
return "obese"
pass
当我调用构造函数时:p = Person("hari", "25", "6", "30")
和p.get_bmi_result
它正在返回<bound method Person.get_bmi_result of <Person object at 0x00DAEED0>>
。
我以公斤和身高进入体重,在计算中我试图将脚转换成厘米。
答案 0 :(得分:2)
您只是忘了调用您的方法:
p.get_bmi_result()
请注意()
个括号。您只取消引用绑定的方法对象。
通过调用,您的代码运行得很好:
>>> class Person(object):
... def __init__(self,name,age,weight,height):
... self.name = name
... self.age = age
... self.weight = float(weight)
... self.height = float(height)
... def get_bmi_result(self):
... bmi = (self.weight)/float((self.height*30.48)*(self.height*30.48))
... print bmi
... if bmi <= 18.5:
... return "underweight"
... elif bmi>18.5 and bmi<25:
... return "normal"
... elif bmi>30:
... return "obese"
...
>>> p = Person("hari", "25", "6", "30")
>>> p.get_bmi_result()
7.17594027781e-06
'underweight'
很明显,你的公式需要调整,对于体重6石头的人来说,体重指数(0.00MI7)根本体重不足,即使只有30英寸(?)小。
根据您的体重和身高单位大小,您可能需要consult the BMI formula并稍微调整一下方法。