Я делаю некоторую домашнюю работу по кодированию, и мне нужно использовать класс с двумя функциями: первая функция, чтобы сгенерировать случайное число, и вторая функция, чтобы установить значение. Я понимаю, что результат должен быть таким, чтобы вывод геттера был равен выводу установщика, но они не совпадают, так как я думаю, что установщик активирует геттер во второй раз перед печатью результата. Я думаю, что мне нужно использовать декораторы, чтобы решить эту проблему, вот как я подошел к ней.
class RandNum(object):
random.seed(0)
def __init__(self):
self.num = self.getNum
@property
def getNum(self):
return random.randint(0,20)
@getNum.setter
def setNum(self,num):
self.num = num
После печати
randnum = RandNum()
for i in range(3):
print("getter: ", randnum.getNum)
print("setter: ", randnum.setNum)
я получаю
getter: 13
setter: 1
getter: 8
setter: 16
getter: 15
setter: 12
Так что мой геттер и сеттер всегда разные. Как я могу сделать их одинаковыми? Я работал над этим несколько дней, но безрезультатно, поэтому буду очень признателен за помощь.