1

私は大規模な課題に取り組んでおり、Set コンテナーの関数__str__と関数を作成するのに助けが必要であることを除けば、ほぼ完了しています。__repr__

私はこれをやったことがなく、何をすべきかわかりません。インターネットを検索しても、まだ行き詰まっています。

私は次のようなことを試しました:

'%s(%r)' % (self.__class__, self)

次のような表現を出力する必要があります。

'set([ELEMENT_1, ELEMENT_2,..., ELEMENT_N])'

私の要素は、セットコンテナを書いた配列クラスに格納されています。for item in selfまたはのようなループでアクセスしますif item in self

助けてください?

4

3 に答える 3

1

私は次のことがうまくいくと思います:

def __repr__(self):
    return 'set([%s])' % ', '.join(self)
于 2013-02-12T21:05:11.333 に答える
1

との違いを詳しく説明しているこの回答を参照してください。__str____repr__

基本的な実装は次のようになります。

def __repr__(self):
    return 'set(%r)' % [item for item in self]
于 2013-02-12T21:06:48.357 に答える
0

これと同じくらい単純なもので十分であり、両方の方法を処理します。

class Set(object):
    def __init__(self):
        self.array = ...

    def __repr__(self):
        return '{}({!r})'.format(self.__class__.__name__, self.array)

    __str__ = __repr__
于 2013-02-12T23:18:30.990 に答える