提取方法
提取方法 重构允许您将可以分组的代码片段移动到一个单独的方法中,并用方法调用替换旧代码。
当您提取方法时,您需要检查变量。 如果有一个输出变量,它将作为提取方法的返回值。 如果存在多个输出变量,则可能无法应用 Extract Method重构,并会出现错误消息。
在这种情况下,有几种解决方法可以让 Extract Method工作。 例如,您可以引入一个包含所有输出值的特殊 data-class。
提取方法
在编辑器中,选择要转换为方法或函数的代码块。
在主菜单中选择 或按下 Ctrl+Alt+M。 或者,从上下文菜单中选择 。
在打开的 提取方法 对话框中,指定新函数的名称。
在 参数 区域中,执行以下操作:
通过选中或清除相应的复选框,指定要作为方法参数传递的变量。
通过双击相应的参数行并输入新名称,重命名所需的参数。
在 签名预览 窗格中检查结果,然后点击 确定 创建所需的函数。
选定的代码片段将被函数调用替换。
示例

之前 | 之后 |
|---|---|
from enum import Enum
class Category(Enum):
A = 1
B = 2
C = 3
def calculate_tax(category, income):
if category == Category.A:
discount = 10
elif category == Category.B:
discount = 5
else:
discount = 0
return income * (100 - discount) / 100
|
from enum import Enum
class Category(Enum):
A = 1
B = 2
C = 3
def calculate_tax(category, income):
discount = calc_discount(category)
return income * (100 - discount) / 100
def calc_discount(category):
if category == Category.A:
discount = 10
elif category == Category.B:
discount = 5
else:
discount = 0
return discount
|
处理重复代码
如果遇到 重复的代码片段 ,PyCharm 会建议用对提取方法的调用替换它们。
最后修改日期: 2025年 9月 26日