我遇到了奇怪的重构行为。有了这行代码:
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'将无法识别。
您可以参考:重构