Как восстановить объект с repr?
Мой код работает отлично, за исключением последней части. Я хочу воссоздать объект с помощью функции repr, но он явно не работает. Я пробовал все здесь и в Интернете, но я все еще так запутался. Есть ли способ сделать это, и если да, то каков синтаксис?
class Modulo(object):
def __init__(self, grondtal, waarde = 0):
self.grondtal = grondtal
self.waarde = waarde % grondtal
def __call__(self, m):
return Modulo(self.grondtal, m)
def __add__(self, other):
return Modulo(self.grondtal, self.waarde + other.waarde)
def __sub__(self, other):
return Modulo(self.grondtal, self.waarde - other.waarde)
def __mul__(self, other):
return Modulo(self.grondtal, self.waarde * other.waarde)
def __eq__(self, other):
return self.waarde == other.waarde and self.grondtal == other.grondtal
def __ne__(self, other):
return not self.__eq__(other)
def __str__(self):
return '[%s %% %s]' % (str(self.grondtal), str(self.waarde))
def __repr__(self):
return '%s' %Modulo(self.grondtal, self.waarde)
1 ответ
Решение
Вы, вероятно, хотите это:
def __repr__(self):
return "Modulo(%d,%d)" % (self.grondtal, self.waarde)
Или, немного более общий:
def __repr__(self):
return "%s(%d,%d)" % (self.__class__.__name__, self.grondtal, self.waarde)
Например:
>>> m = Modulo(3,2)
>>> repr(m)
'Modulo(3,2)'