说我有一个班级("班级名称"其中包括以下内容:
def price(self): return self.price
def number(self): return self.number
我在该类中有另一个函数,我想要执行以下操作:对于类中的每个单独的对象,将self.price乘以self.number,并将其总和添加到要在a中使用的变量中程序
def total(self,price,number):
tot = 0
for i in Classname:
price = price(self)
number = number(self)
objvalue = price * number
total += objvalue
return total
在使用Classname功能的程序中,我很难使用' total'在类中定义的函数。我只是想在程序中定义的calcTotal函数返回' total'由类中的函数total定义的值。
我试过了:
def calcTotal:
totalhere = Classname.total()
返回
"unbound method sumInventory() must be called with Classname instance as first argument (got nothing instead)"
所以我接着尝试了
totalhere = Classname.total(Classname)
返回
"unbound method sumInventory() must be called with Classname instance as first argument (got type instance instead.)"
我不确定如何绑定方法以返回我想要它返回的内容。
答案 0 :(得分:0)
通过“对于类中的每个单独对象”的声音,似乎您将容器与容器混淆。类本身并不是所有实例的容器。
我想你可能想要使用两个单独的类,比如这个......
class Order(object):
def __init__(self):
self._items = []
def add_item(self, item):
self._items.append(item)
def get_total_price(self):
total = 0
for item in self._items:
total += item.price() * item.quantity()
return total
class OrderItem(object):
def __init__(self, price, quantity):
self._price = price
self._quantity = quantity
def price(self):
return self._price
def quantity(self):
return self._quantity
...那么你可以做这样的事......
>>> o = Order()
>>> o.add_item(OrderItem(1.99, 2))
>>> o.add_item(OrderItem(0.99, 5))
>>> print o.get_total_price()
8.93