Python 重构:";“提取方法”;错误和意外结果

Python 重构:";“提取方法”;错误和意外结果,python,visual-studio-code,rope,Python,Visual Studio Code,Rope,我遇到了奇怪的重构行为。 使用这行代码: variable = 1 + 2 + 3 当我试图提取变量时,通过突出显示“1+2”,然后右键单击->选择“提取变量”选项,我得到以下结果: newvariable74 = 1 + 2 a = newvariable74 2 + 3 我在重构方面还有其他问题。我在测试时得到了不同的结果 例如,此代码: def f(): a_var = 1 # INFO: I'm printing `a_var` print 'a_var =

我遇到了奇怪的重构行为。 使用这行代码:

variable = 1 + 2 + 3
当我试图提取变量时,通过突出显示“1+2”,然后右键单击->选择“提取变量”选项,我得到以下结果:

newvariable74 = 1 + 2
a = newvariable74 2 + 3
我在重构方面还有其他问题。我在测试时得到了不同的结果

例如,此代码:

def f():
    a_var = 1
    # INFO: I'm printing `a_var`
    print 'a_var = %s' % a_var
…将“a_var”重命名为“new_var”后,新代码应如下所示:

def f():
    new_var = 1
    # INFO: I'm printing `new_var`
    print 'new_var = %s' % new_var
但我得到的却是:

def f():
new_var = 1
# INFO: I'm printing `a_var`
print ('a_var = %s' % new_var)
注意字符串的内容是如何保持不变的

一些信息:

  • 我使用Python3.8.2 64位
  • Visual Studio代码:1.47.1
  • Linux Mint 20
  • Linux内核5.4.0-40-generic

目前,vscode变量和方法的重构功能由Python扩展提供,但其重构不支持重命名功能

对于vscode中的变量重构,您可以尝试向其添加括号以使其可识别

variable = (1 + 2) + 3
如果要将vscode中的所有“a_var”重命名为“new_var”,可以尝试使用
Ctrl+F2
。它将更改当前文件中显示的所有“a_var”

当我使用“
F2
”时,它只会更改当前文件中的变量,而不会识别“new”Var=%s

variable = (1 + 2) + 3
你可以参考: