0

うまくいけば、迅速な回答!ヘルプの任意の方向をいただければ幸いです。私は最終試験の準備をしようとしています。

これは私がクラスを呼び出す方法です:

    >>> Q = priorityQueue()
    >>> Q.insert("text",10)
    >>> Q.insert("hello", 18)
    >>> Q
    text 10, hello 18

だから私は次のようなクラスを持っています:

    class priorityQueue():

          def __init__(self):
              self.items = []
              self.priorities = []

           def insert(self, x, p):
              self.items.append(x)
              self.priorities.append(p)

           #This is where I dont understand how to get it to return how it should.
           def __repr__(self):
               new = []
               for x in range(len(self.items)):
                   new.append(str(self.items[x])+ " " +str(self.priorities[x]))
               return [str(x) for x in new]

これにより、次のようなエラーが表示されます。

      TypeError: __repr__ returned non-string (type list)

ありがとうスタック!

4

2 に答える 2

0

__repr__関数は a を返す必要がありstringますが、あなたはa を返していますlistreturnたぶん、行をに変更したいでしょうreturn '\n'.join(new)

于 2013-05-15T03:48:56.897 に答える
0

試す:

def __repr__(self):
    new = []
    for x in range(len(self.items)):
        new.append(str(self.items[x])+ " " +str(self.priorities[x]))
    return ','.join(new)

基本的に、コンマ区切りの文字列である目的の出力で出力を返す必要があります。

于 2013-05-15T03:50:45.303 に答える