每次我选择一个代码块并选择 Refactor This > Extract > Method 时,弹出窗口都会在参数字段中显示“nothing to show”。考虑以下程序:

a = 1
b = 2
c = a + b

print(c)

我选择行 c = a + b,然后选择 Refactor This > Extract > Method。我希望弹出框参数字段至少包含 a 和 b,而是:“没有显示”。这应该如何工作?

the doc section Extract Method 中的例子真的有效吗?为了到达“之后”,在“之前”中选择了什么。 “Before”中没有 d,所以我怀疑打错了...

[OS X 10.9.5 上的 PyCharm 4.04]

最佳答案

您引用的示例是在类的上下文中执行的。在 OS X 10.7 上使用 Pycharm 4.0.4 对我来说效果很好

但是,在“脚本”上下文中的相同操作会带来不同的结果,因为 Pycharm 似乎更多地依赖于命名空间,如果您接受重构,您可能已经观察到:

a = 1
b = 2

def method_name():
    global c
    c = a + b

method_name()
print(c)

哪个有效,尽管在这种情况下不一定有用。

最后,您提到的 d 变量似乎已使用另一个重构从
math.sqrt(b**2 - 4*a*c)

我同意这不是文档页面的重点,应该避免。

关于在 PyCharm 中重构 : How to extract a method?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27956489/

10-13 01:18