内联
内联重构允许您撤销对方法或变量的提取重构。
将文本光标放在您要内联的代码片段处。
按下 Ctrl+Alt+N。 或者,右键点击代码片段,并从 菜单中选择您需要的内联重构。
在 内联 对话框中,指定内联选项。

(可选)选择 预览 以预览更改。
预览并应用更改。
内联此变量
内联变量重构用其初始化器替换冗余变量的使用。
变量必须在声明时初始化。 如果初始值在代码的某处被修改,只有在修改之前的出现将被内联。
之前 | 之后 |
|---|---|
import math
class Solver:
def demo(self):
a = 3
b = 25
c = 46
# This variable will be inlined
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)
Solver().demo()
|
import math
class Solver:
def demo(self):
a = 3
b = 25
c = 46
# This variable will be inlined
root1 = (-b + math.sqrt(b ** 2 - 4 * a * c)) / (2 * a)
root2 = (-b - math.sqrt(b ** 2 - 4 * a * c)) / (2 * a)
print(root1, root2)
Solver().demo()
|
内联方法或函数
内联方法的结果是将方法的主体放入其调用者的主体中。 当您为方法或函数启动内联重构时,PyCharm会提示您选择在重构后是移除方法声明还是保留它。 根据您的选择,重构结果会有所不同。
之前 | 之后 |
|---|---|
def say_state(self):
print_state(self)
def print_state(self):
print("I'm going {} kph!".format(self.speed))
|
def say_state(self):
print("I'm going {} kph!".format(self.speed))
|
之前 | 之后 |
|---|---|
def say_state(self):
print_state(self)
def print_state(self):
print("I'm going {} kph!".format(self.speed))
|
def say_state(self):
print("I'm going {} kph!".format(self.speed))
def print_state(self):
print("I'm going {} kph!".format(self.speed))
|
当PyCharm发现多个需要内联的方法或函数的出现时,它会启用重构预览。 点击 预览 按钮,在 内联重构 对话框中评估出现情况。

点击 执行重构 按钮完成内联。
要内联特定的调用,请将插入符号放在其上,按下 Ctrl+Alt+N ,并在 内联重构 对话框中选择 仅使用此调用并保留声明 选项。
重构限制
PyCharm不支持以下类别的方法和函数的内联重构:
用作装饰器的函数
用作引用的函数
使用任何参数解包的函数
生成器
异步函数
构造函数调用
内置函数
带有装饰器的函数
递归函数
带有 * 参数的函数
被重写的函数
带有全局变量的函数
带有非局部变量的函数
带有另一个函数声明的函数
中断控制流的函数
当您尝试对这些函数或方法中的任何一个执行重构时,将显示警告消息:

最后修改日期: 2025年 9月 26日