PyCharm 中的重构:如何提取方法?

Refactoring in PyCharm: How to extract a method?

每次我 select 一段代码并选择 Refactor This > Extract > Method 时,弹出窗口 window 会在参数字段中出现 "nothing to show"。考虑以下程序:

a = 1
b = 2
c = a + b

print(c)

I select 行 c = a + b,然后选择 Refactor This > Extract > Method。我希望弹出框参数字段至少包括 ab,但相反:"nothing to show"。这应该如何工作?

the doc section Extract Method中的例子真的有效吗?为了到达 "After",select 在 "Before" 中编辑了什么。 "Before"里面没有d,所以我怀疑打错了...

[PyCharm 4.04 OS X 10.9.5]

你引用的例子是在class的上下文中执行的。 Pycharm 4.0.4 在 OS X 10.7

上对我来说效果很好

在 "script" 的上下文中执行相同的操作会带来不同的结果,因为 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)

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