Есть несколько причин для изменения имени базовой переменной экземпляра, но это будет сильно зависеть от того, что вам действительно нужно сделать. Отличный пример приходит с использованием свойств. Вы можете, например, создать переменные, которые не будут перезаписаны, что может означать, что вы хотите сохранить их под другой переменной, например:
class MyClass:
def __init__(self, x, y):
self._x, self._y = x, y
@property
def x(self):
return self._x
@x.setter
def x(self, value):
print "X is read only."
@property
def y(self):
return self._y
@y.setter
def y(self, value):
self._y = value
Это создаст класс, который позволяет создавать экземпляры с двумя значениями, x и y, но где x не может быть изменено, в то время как y может.
В общем, повторное использование одного и того же имени для переменной экземпляра понятно и уместно.