从Python中的实例化类对象获取实例变量

时间:2018-04-05 11:30:51

标签: python

我正在尝试从实例化的类中获取实例变量。我创建的课程代表邮票。

在这种情况下,我试图在全局环境中将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

2 个答案:

答案 0 :(得分:0)

在最后添加()cost = stamp.get_cost()

答案 1 :(得分:0)

您只需在调用get_cost()

时添加括号
cost = stamp.get_cost()

您的代码没有导致错误的原因是因为在Python中,函数是第一类对象,即您可以将它们用作其他函数的参数,将它们分配给变量等。

在您的代码中,您将实际函数本身分配给变量,而不是调用函数,并指定返回值。

有关函数式编程语言的更多信息(这里有一篇好文章https://www.quora.com/Is-Python-a-functional-language