inkrementiere int Objekt

Gibt es in Python eine Möglichkeit, int object an der richtigen Stelle zu erhöhen, scheint int nicht zu implementieren__iadd__ also gibt + = 1 tatsächlich ein neues Objekt zurück

>>> n=1
>>> id(n)
9788024
>>> n+=1
>>> id(n)
9788012

Ich möchte, dass n auf dasselbe Objekt zeigt.

Zweck: Ich habe eine Klasse, die von int abgeleitet ist, und ich möchte den C-Typ "++ n" -Operator für diese Klasse implementieren

Fazit: ok, da int unveränderlich ist, gibt es keinen Weg, es sieht so aus, als müsste ich meine eigene Klasse so etwas schreiben

class Int(object):
    def __init__(self, value):
        self._decr = False
        self.value = value

    def __neg__(self):
        if self._decr:
            self.value -= 1
        self._decr = not self._decr
        return self

    def __str__(self):
        return str(self.value)

    def __cmp__(self, n):
        return cmp(self.value, n)

    def __nonzero__(self):
        return self.value

n = Int(10)
while --n:
    print n

Antworten auf die Frage(6)

Ihre Antwort auf die Frage