每次我选择一个代码块并选择 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/