あなたはrepr
は、作成することを可能にするためのオブジェクトを作成することが奨励され、ネイティブオブジェクトのバインディングを持つことができませんのでご了承くださいrepr
出力を貼り付けて新しいオブジェクトを作成しますが、厳密には適用されません。オブジェクトや内部構造の性質によっては、これも簡単ではないかもしれません。
これにはさまざまな方法があります。ここでは一つの方法は非常に簡単な例です:
>>> r = ReprObject(value=1, item=True)
>>> r
ReprObject(**{'item': True, 'value': 1})
今repr
とすると、作成するためにそれを使用することをコピー/ペースト:
class ReprObject(object):
def __init__(self, value, item):
self.value = value
self.item = item
def __repr__(self):
return '%s(**%r)' % (self.__class__.__name__, self.__dict__)
だから、我々は対話インタプリタに、インスタンスを作成しますが、ことを取ります新しいオブジェクト:
>>> r2 = ReprObject(**{'item': True, 'value': 1})
>>> r2
ReprObject(**{'item': True, 'value': 1})
そしてeval()
でも動作します:
>>> eval(repr(r2))
ReprObject(**{'item': True, 'value': 1})
私は多分、私はSOの専門家に尋ねると思っていたと思っています:) – tMC