复制和移动重构
“ 移动 ”重构允许您在项目中移动类、函数、模块、文件和目录。 在此过程中,PyCharm 会跟踪这些移动并自动更正源代码中对已移动符号的所有引用。
以下“ 移动 ”重构可用:
“ 移动文件 ”重构将文件移动到另一个目录。
“ 移动目录 ”重构将目录移动到另一个目录。
“ 移动模块成员 ”重构移动 Python 模块的顶级符号。
“ 将本地函数/方法提升为顶级 ”重构将方法或本地函数转换为顶级函数,并将其移动到指定文件。
将文件或目录移动到另一个目录
在 项目 工具窗口中选择文件或目录。
从主菜单或编辑器上下文菜单中选择 ,或按 F6。
在 到目录 字段中,指定要将所选文件或文件夹移动到的文件夹。 从列表中选择一个现有文件夹,或键入要创建的父文件夹的完整路径。 要根据重构结果更新对所选文件或文件夹的引用,请选中 搜索引用(F) 复选框。
移动顶级符号
移动成员
将函数/方法移动到顶级
此重构通过将对实例属性或封闭作用域中变量的引用转换为参数,并相应地更新现有用法,将本地函数或方法移动到顶级。
将函数或方法移动到顶级
将光标放在本地函数或方法名称处。
从主菜单或编辑器上下文菜单中选择 ,或按 F6。
在打开的 使之为顶层方法 对话框中,指定移动的目标位置。 您可以手动输入,或点击浏览按钮
,在 选择目标文件对话框中定位目标文件。
点击 重构 以执行重构,或点击 预览 以在“查找”工具窗口中显示预览。 如果对预览结果满意,请点击 执行重构 确认移动。
示例
之前 | 之后 |
|---|---|
import math
class Solver(object):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def demo(self):
d = self.b ** 2 - 4 * self.a * self.c
if d >= 0:
disc = math.sqrt(d)
root1 = (- self.b + disc) / (2 * self.a)
root2 = (- self.b - disc) / (2 * self.a)
print(root1, root2)
return root1, root2
else:
raise Exception
Solver(2, 123, 0.025).demo()
|
import math
class Solver(object):
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def demo(b, a, c):
d = b ** 2 - 4 * a * c
if d >= 0:
disc = math.sqrt(d)
root1 = (- b + disc) / (2 * a)
root2 = (- b - disc) / (2 * a)
print(root1, root2)
return root1, root2
else:
raise Exception
s = Solver(2, 123, 0.025)
demo(s.b, s.a, s.c)
|
复制重构
“复制”重构允许您在不同或相同的目录中创建文件或目录的副本。
执行复制重构
在工具窗口中选择感兴趣的项目(例如 项目 工具窗口)。 或者,在编辑器中打开所需的类或文件。
请执行以下操作之一:
从主菜单或上下文菜单中选择 。
按下 F5。
在 项目 工具窗口中,按住 Ctrl 并将项目拖动到目标位置。
在打开的 复制对话框中,指定您正在创建的副本的名称和位置,然后点击 确定。

