重构:"Extract Method"错误和意外结果



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

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 Mint 20
  • Linux内核5.4.4-40通用

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

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

variable = (1 + 2) + 3

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

当我使用'F2'时,它只更改当前文件中的变量,'new'_Var=%s'将无法识别。

您可以参考:重构

相关内容

  • 没有找到相关文章

最新更新