我正在尝试从实例化的类中获取实例变量。我创建的课程代表邮票。
在这种情况下,我试图在全局环境中将self.cost实例变量作为float访问。为了绘制更多的图片,我的程序将生成多个“Stamp”类以添加到购物车。
我希望能够将各自的价格合计为总成本金额。我试过只展示下面的相关代码。
我收到的错误是 - TypeError: unsupported operand type(s) for +=: 'int' and 'method'
错误显然发生在total cost += cost
,虽然我不明白为什么程序将成本作为方法而不是浮动来阅读。
请参阅下面课程中的相关代码表:
self.quantity = int(input("How many of this item would you like to post?))
self.cost = self.price * self.quantity
def get_cost(self):
return float(self.cost)
全球环境代码:
stamp = Stamp() #instantiate a stamp class
totalCost = 0 #create a variable for the totalCost
cost = stamp.get_cost #create variable to obtain stamp cost from within class
totalCost += cost #each time a class is instantiated this will add the cost
答案 0 :(得分:0)
在最后添加()
:cost = stamp.get_cost()
答案 1 :(得分:0)
您只需在调用get_cost()
时添加括号cost = stamp.get_cost()
您的代码没有导致错误的原因是因为在Python中,函数是第一类对象,即您可以将它们用作其他函数的参数,将它们分配给变量等。
在您的代码中,您将实际函数本身分配给变量,而不是调用函数,并指定返回值。
有关函数式编程语言的更多信息(这里有一篇好文章https://www.quora.com/Is-Python-a-functional-language)