Reputation: 25
This is my code so far:
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
When I run the following code:
products.add_item('CWH111', Compound('CWH111', 'Mountain Bike Built Wheel', products, [('TR202', 1), ('TU227', 1), ('WH239', 1)]))
products.get_item('CWH111')
I want to get
CWH111, Mountain Bike Built Wheel, TR202:1,TU227:1,WH239:1
but instead, all i get is
CWH111, Mountain Bike Built Wheel, <____main____.Products instance at 0x0000000002727588>
I have tried a lot of different things; can some one please tell me what I am doing wrong?
Upvotes: 0
Views: 87
Reputation: 1125408
You are not using specifying a string formatter the self._items_list
argument here:
return "{0}, {1}, {2}".format(self._itemID, self._name, self._products, self._items_list)
You only have 3 slots there ({0}
, {1}
and {2}
), but you pass in 4 arguments. The following would already be better:
return "{0}, {1}, {2}".format(self._itemID, self._name, self._items_list)
even though that would not print exactly what you wanted.
You want to format self._items_list
a bit more:
il = ','.join(['{0}:{1}'.format(*item) for item in self._items_list])
return "{0}, {1}, {2}".format(self._itemID, self._name, il)
Upvotes: 2