分析重复项
PyCharm 帮助您在特定范围内查找重复的代码块。 此范围可以是单个文件、项目、模块或自定义范围。 分析结果直接显示在编辑器中或 重复项工具窗口的专用选项卡中。
实时检测重复项
PyCharm 支持实时发现重复项。 分析是通过 重复代码片段 检查完成的,您可以在 通用 节点下的 编辑器|检查 设置页面  Ctrl+Alt+S 中找到。
如果您遇到现有的重复项,或者通过编写或粘贴代码意外创建了重复项,PyCharm 会报告问题并建议快速修复,帮助您导航到检测到的重复项,或在 重复项 工具窗口中查看所有重复项。

配置重复项分析
按下 Ctrl+Alt+S 以打开设置,然后选择 。
在打开的 重复项 页面上,选择应应用重复项分析的文件类型。 此外,选择 变量或标识符名称/函数或字段名称/常量值 复选框,以定义是否应将使用不同名称的两个相同实体视为重复项。
例如,如果启用了 变量或标识符名称 和 函数或字段名称 ,则以下两个函数将被视为重复项:
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)按下 Ctrl+Alt+S 打开设置,然后选择 。
在 通用 节点下选择 重复代码片段 检查。
在检查选项中,选择是否仅在同一文件内查看重复项,或在整个项目中查看重复项。 在必要文件类型的 不要显示简单的重复项 字段中,设置要检测的重复语言结构的大小。 在 Python 上下文中,默认情况下小于 45 单位的结构会被忽略。 更改单位数量以启用对较小代码片段的重复检测。 单位的值可以按以下方式计算:
units = 2*<number of statements> + <number of expressions>。
手动查找重复项(已弃用)
在主菜单中,转到 。
在 指定代码重复分析作用域 对话框中,选择分析作用域:整个项目、当前文件、未提交的文件(对于版本控制下的项目)或自定义作用域。 您还可以选择在分析中包含测试源。
在 代码重复分析设置 对话框中,选择您想要解析的语言。
您可以为每种语言检查选项以确定分析偏好。 例如,您可以选择请求将完全匹配的代码片段视为重复项,或指定一个下限,低于该下限的代码结构不会被视为重复项(例如,为了避免报告源代码中的每个
if结构)。在 Duplicates 工具窗口中,查看分析结果。

在工具窗口的左侧窗格中查看重复项列表。
在右侧窗格中查看找到的重复项之间的差异。 使用箭头按钮将选定的重复项放置在差异查看器的某个部分中,并比较代码片段。
通过使用 跳转到源 或 显示源代码 上下文菜单命令,在编辑器中导航到重复项。
通过对检测到的重复代码块应用 提取方法重构 来从源代码中消除重复项,这些代码块会被自动找到并高亮显示。