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>

私はさまざまなことを試しました。誰かが私が間違っていることを教えてもらえますか?

4

1 に答える 1

2

self._items_listここで引数に文字列フォーマッタを指定することは使用していません。

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

{0}そこには 3 つのスロット ( 、{1}および)しかありませんが、 4 つの引数{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)
于 2012-10-10T20:38:20.687 に答える