0

我正在经历奇怪的重构行为。使用这行代码:

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)

注意字符串的内容没有改变。

一些信息:

  • 我使用 Python 3.8.2 64 位
  • Visual Studio 代码:1.47.1
  • Linux 薄荷 20
  • Linux 内核 5.4.0-40-generic
4

1 回答 1

1

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

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

variable = (1 + 2) + 3

如果您想在 vscode 中将所有 'a_var' 重命名为 'new_var',可以尝试使用 .Ctrl+F2它会更改当前文件中出现的所有 'a_var'。

当我使用' F2'时,它只会改变当前文件中的变量,'new'_var =%s'不会被识别。

可以参考:重构

于 2020-07-15T04:57:22.823 回答