Невозможно сделать то, что вы пытаетесь сделать здесь, поскольку целые числа неизменны в Python. После их создания они не могут быть изменены.
От Python Documentation
Значение некоторых объектов может измениться. Объекты, значение которых может измениться, считаются изменяемыми; объекты, значение которых неизменено после их создания, называются неизменяемыми. ...Изменчивость объекта определяется его типом; например, числа, строки и кортежи неизменяемы, а словари и списки изменяемы.
В зависимости от того, что вы собираетесь использовать это для того, что вы могли бы сделать вместо этого следующее:
class Counter(object): # new style object definition.
def __init__(self, num):
self.value = num
# this is 32bit int max as well, same as pow(2,32) function.
self.maximum = 0xFFFFFFFF
def increase(self):
self.value += 1
if self.value > self.maximum:
self.value -= self.maximum
def __repr__(self): # representation function.
return str(self.value)
def __str__(self): # string function
return str(self.value)
counter = Counter(10)
print counter
counter.increase()
print counter
counter.increase()
print counter
Кажется странным идеей, чтобы наследовать 'int'. Почему бы просто не использовать атрибут 'int'? – erip
Также неплохо вычислить 'максимум' каждый раз. – erip