分析重复项
最后修改时间:2023 年 9 月 7 日PyCharm 可以帮助您找到一定范围内的重复代码块。该范围可以是单个文件、项目、模块或自定义范围。分析结果直接显示在编辑器中或“重复”工具窗口的专用选项卡中。
动态检测重复项
PyCharm 可以动态发现重复项。分析是通过重复代码片段 检查来执行的,您可以在编辑器|常规节点下找到该检查。检查IDE 设置页面 。CtrlAlt0S
如果您偶然发现现有重复项或通过编写或粘贴代码以某种方式创建重复项,PyCharm 会报告问题并建议快速修复,以便您导航到检测到的重复项,或在“重复项”工具窗口中查看所有重复项。
配置重复分析
按打开 IDE 设置,然后选择编辑器 | 重复。CtrlAlt0S
在打开的“重复项”页面上,选择应应用重复项分析的文件类型。此外,选择变量或标识符名称/函数或字段名称/常量值复选框来定义是否应将使用不同名称的两个相同实体视为重复项。
例如,如果启用了变量或标识符名称以及函数或字段名称,则以下两个函数将被视为重复:
def demo(a, b, c): return_type_of_sqrt = math.sqrt(b ** 2 - 4 * a * c) root1 = (-b + return_type_of_sqrt) / (2 * a) root2 = (-b - return_type_of_sqrt) / (2 * a) print(root1, root2) def sqrt_func(n, m, k): return_type_of_sqrt = math.sqrt(m ** 2 - 4 * n * k) result1 = (-m + return_type_of_sqrt) / (2 * n) result2 = (-m - return_type_of_sqrt) / (2 * n) print(result1, result2)
按打开 IDE 设置,然后选择编辑器 | 检查。CtrlAlt0S
选择常规节点下的重复代码片段检查。
在检查选项中,选择是仅查看同一文件中的重复项还是整个项目中的重复项。在必要文件类型的“不显示比其简单的重复项”字段中,设置要检测的重复语言结构的大小。在 Python 上下文中,默认情况下会忽略少于 45 个单元的结构。更改单元数量以启用较小代码片段的重复检测。单位值可计算如下:
units = 2*<number of statements> + <number of expressions>
.
手动查找重复项(已弃用)
笔记
此选项已被弃用,并将很快被删除。
转到代码 | 分析代码 | 找到重复项....
在“指定代码重复分析范围”对话框中,指定分析范围:整个项目、当前文件、未提交的文件(对于版本控制下的项目)或某些自定义范围。此外,您还可以在分析中包含测试源。
在“代码重复分析设置”对话框中,选择要分析的语言。
对于每种语言,检查选项以定义分析首选项。例如,您可以选择请求相同的匹配来将代码片段视为重复,或者指定某个限制,低于该限制的代码构造将不被视为重复(例如,避免报告
if
源代码中的每个构造)。在“重复”工具窗口中,浏览分析结果。
在工具窗口的左窗格中查看重复项列表。
在右侧窗格中查看找到的重复项之间的差异。使用箭头按钮将选定的重复项放置在差异查看器的某一部分中,并比较代码片段。
使用“跳转到源”或“显示源”上下文菜单命令导航到编辑器中的重复项。
通过对自动发现并突出显示的检测到的重复代码块应用 Extract 方法重构,消除源代码中的重复项。
感谢您的反馈意见!