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

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


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 位

  • 视觉工作室代码:1.47.1

  • Linux 薄荷 20

  • Linux 内核 5.4.0-40-generic


紫衣仙女
浏览 68回答 1
1回答

神不在的星期二

目前vscode变量和方法的重构功能由Python extension提供,但其重构不支持重命名功能。对于 vscode 中的变量重构,您可以尝试为其添加括号以使其被识别。variable = (1 + 2) + 3如果你想在 vscode 中将所有 'a_var' 重命名为 'new_var',你可以尝试使用Ctrl+F2。它将更改所有出现在当前文件中的 'a_var'。当我使用' F2'时,它只会改变当前文件中的变量,'new'_var=%s'将不会被识别。可以参考:重构
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python