我正在尝试创建一个营养计算器,我有一些关于init()的问题。在
def main():
print "Welcome to the MACRONUTRIENT CALCULATOR"
User_nutrition = get_data()
User_nutrition.calorie_budget()
class get_data(object):
def __init__(self, calorie_deficit):
self.calorie_deficit = calorie_deficit
def calorie_bugdet(self): # ask for calorie deficit
self.calorie_deficit = float(input("Enter you calorie deficit: "))
if __name__ == "__main__":
main()
我得到一个错误:
^{pr2}$但是,当我看一个文档示例时,我看到了
class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart
很好!我有点困惑。我知道init(self)有助于初始化对象并在内存中为其分配空间,但我所知道的只有这些。我是否遗漏了关于init和我应该了解的自我的其他信息?在
首先,
__init__
不为内存中的对象分配空间,这是由__new__
自定义的。实例已由调用__init__
的点创建。在这种情况下,您接受两个参数:第一个是实例(隐式传递),因此您需要传递的唯一参数是
^{pr2}$calorie_deficit
。但是在您的main()
电话中:您没有传递该参数,因此只传递了实例。因此错误是:
问题在于:
你应该这么做
^{pr2}$相关问题 更多 >
编程相关推荐