Если Вы выделите метод Assert.assertEquals(val1, val2)
и поразите Ctrl + , Сдвиг + M (Добавьте Импорт), это добавит его как статический импорт, по крайней мере, в Eclipse 3.4.
int неизменяемы, поэтому вам нужно будет создать свой собственный класс со всеми методами int, если вы хотите "изменяемый int"
Да, краткий ответ заключается в том, что int неизменяемы.
Вероятно, было бы проще создать класс, который реализует методы int и обертывает внутреннее целое число.
Если вам абсолютно необходимо заставить этот код работать, вот грязный метод, в котором метод экземпляра перемещается вверх на кадр и перезаписывает свою собственную запись локальных переменных. Не рекомендую. (ну, на самом деле нет. Я даже не уверен, что это значит. Что происходит со старым экземпляром? Я недостаточно знаю о фреймах ...). На самом деле, я публикую это только потому, что все сказали, что это невозможно, хотя на самом деле это просто до смешного дурной тон. ; -)
import sys
class FakeInt(int):
def __init__(self, *arg, **kwarg):
self._decr = False
int.__init__(self, *arg, **kwarg)
def __neg__(self):
if self._decr:
upLocals = sys._getframe(1).f_locals
keys, values = zip(*upLocals.items())
i = list(values).index(self)
result = FakeInt(self-1)
upLocals[keys[i]]=result
return result
self._decr = not self._decr
return self
A = FakeInt(10)
while --A:
print A,
выводит:
9 8 7 6 5 4 3 2 1