提取函数
通过 提取函数 重构,可以将可分组的代码片段移入独立的函数,并用对该函数的调用替换原有代码。
在提取函数时,需要检查变量。 如果只有一个输出变量,则将其用作提取函数的返回值。 如果存在多个输出变量,可能无法应用 提取函数 重构,并会出现错误消息。
在这种情况下,有几种变通方法可使 提取函数 生效。 例如,您可以引入一个包含所有输出值的特殊数据类。
提取函数
在编辑器中,选择要转换为方法或函数的代码块。
在主菜单中,选择 或按 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 建议将它们替换为对提取函数的调用。
2026年 7月 14日