2012-10-10 49 views
0

这是到目前为止我的代码:蟒蛇错误不会返回什么期望的结果

class Compound(Item): 

    def __init__(self, itemID, name, products, itemlist): 
     Item.__init__(self,itemID,name) 
     self._products = products 
     self._items_list = itemlist 


    def get_cost(self): 
     return self._cost 

    def get_items_list(self): 
     return self._items_list 

    def get_items_str(self): 
     return "".format(self._itemID, self._name) 

    def set_items(self, itemlist): 
     self._itemlist= itemlist 

    def get_depend(self): 
     allitems = [] 
     for a in self._set_items: 
      allitems.append(n[0]) 
      return allitems 

    def __repr__(self): 
     return "{0}, {1}, {2}".format(self._itemID, self._name, self._products, self._items_list) 

    def __str__(self): 
     return '{0}  {1}       {2}'.format(self._itemID, self._name, self._products, self._item_list) 

class Products(): 
    def __init__(self): 
     self._products = {} 

    def get_item(self, itemID): 
     return self._products.get(itemID) 

    def add_item(self, itemID, product): 
     self._products[itemID] = product 

    def remove_item(self, itemID, product): 
     if item in products: 
      self._products.remove(item) 
      return True 
     return False 

    def delete_all(self): 
     self._products.clear() 

    def get_keys(self): 
     return self._products.keys() 

    def check_depend(self, item): 
     for i in self._products: 
      depend = self._products(i).get_depend() 
      if item in depend: 
       return True 
      return False 

当我运行下面的代码:

products.add_item('CWH111', Compound('CWH111', 'Mountain Bike Built Wheel', products, [('TR202', 1), ('TU227', 1), ('WH239', 1)])) 
products.get_item('CWH111') 

我想

CWH111, Mountain Bike Built Wheel, TR202:1,TU227:1,WH239:1 

但是相反,我得到的全部是

CWH111, Mountain Bike Built Wheel, <____main____.Products instance at 0x0000000002727588> 

我已经尝试了很多不同的东西;有人能告诉我我做错了什么吗?

回答

2

您不使用指定的字符串这里格式器self._items_list说法:

return "{0}, {1}, {2}".format(self._itemID, self._name, self._products, self._items_list) 

你只需要3个插槽有({0}{1}{2}),但你在参数传递。以下将更好:

return "{0}, {1}, {2}".format(self._itemID, self._name, self._items_list) 

尽管那不会打印正是你想要的。

要格式化self._items_list多一点:

il = ','.join(['{0}:{1}'.format(*item) for item in self._items_list]) 
return "{0}, {1}, {2}".format(self._itemID, self._name, il) 
+0

谢谢嗯我在哪里把那个 – Silvia

+0

我有类型错误:序列项目1:预计字符串,整数发现,而不是现在 – Silvia

+0

@martineau:谢谢你的固定。 –