复制与移动重构
通过 移动 重构,您可以在项目内移动类、函数、模块、文件和目录。 在此过程中, 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 ,并将该项拖动到目标位置。
在打开的 复制对话框 中,指定要创建的副本的名称和位置,然后点击 确定。
最后修改日期: 2025年 12月 2日

