Рефакторинг с pyCharm от "user" до "self.user"
Я хочу переместить переменную из локальной области на уровень объекта. Новый код должен использовать self.user
, а не user
, как раньше:
class Foo(object):
def test_foo(self):
user=User()
...
user.do()
Новый код должен выглядеть так:
class Foo(object):
def test_foo(self):
self.user=User() # I can remove this line by hand
...
self.user.do()
Я попытался реорганизовать → переименовать из user
в self.user
, но pyCharm говорит: "Введенный идентификатор недействителен"
Как я могу реорганизовать это с помощью pyCharm?
Ответы
Ответ 1
То, что вы пытаетесь сделать, - это не простое переименование, а создание нового атрибута экземпляра.
Таким образом, вместо использования переименования вы должны использовать пункт "Извлечь > поле".
В качестве альтернативы вы можете получить доступ к этому рефакторингу как Ctrl + Alt + F (это зависит от выбранных вами ярлыков. Mine - это значение по умолчанию для KDE).