0

假设我有一个班级(“Classname”,其中包括以下内容:

def price(self): return self.price
def number(self): return self.number

我在该类中有另一个函数,我想执行以下操作:对于类中的每个单独对象,将 self.price 乘以 self.number,并将其总和添加到要在程序中使用的变量中。

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 定义的“总计”值。

我试过了:

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.)"

我不确定如何绑定该方法以返回我希望它返回的内容。

4

1 回答 1

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
于 2013-04-30T18:53:03.360 回答