repr
出力を貼り付けて新しいオブジェクトを作成できるオブジェクトを作成することをお勧めしますがrepr
、厳密には強制されません。オブジェクトの性質と内部構造によっては、これも簡単に実行できない場合があります。
それを行うには多くの方法があります。1 つの方法の非常に単純な例を次に示します。
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__)
次に、それを対話型インタープリターに渡して、インスタンスを作成します。
>>> r = ReprObject(value=1, item=True)
>>> r
ReprObject(**{'item': True, 'value': 1})
それをコピーして貼り付け、repr
それを使用して新しいオブジェクトを作成します。
>>> r2 = ReprObject(**{'item': True, 'value': 1})
>>> r2
ReprObject(**{'item': True, 'value': 1})
またeval()
、動作します:
>>> eval(repr(r2))
ReprObject(**{'item': True, 'value': 1})