使用pyCharm从"user"到"self.user"重构

gue*_*tli 14 python refactoring pycharm

我想将变量从局部范围移动到对象级别.新代码应该使用self.user而不是user之前:

class Foo(object):
    def test_foo(self):
        user=User()
        ...
        user.do()
Run Code Online (Sandbox Code Playgroud)

新代码应如下所示:

class Foo(object):
    def test_foo(self):
        self.user=User() # I can remove this line by hand
        ...
        self.user.do()
Run Code Online (Sandbox Code Playgroud)

我试图重构>>重命名user,self.user但pyCharm说:"插入的标识符无效"

我怎么能用pyCharm重构这个?

Bak*_*riu 9

您要做的不是简单的重命名,而是创建新的实例属性.因此,您应该使用" 提取">"字段"菜单项,而不是使用" 重命名".或者,您可以将此重构作为+ + 访问(这取决于您选择的快捷方式.我的是KDE的默认值).CtrlAltF