Python 2.7:在另一个程序/绑定中使用类的函数

时间:2013-04-30 18:36:00

标签: python class

说我有一个班级("班级名称"其中包括以下内容:

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

我不确定如何绑定方法以返回我想要它返回的内容。

1 个答案:

答案 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