Рефакторинг с 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).