内联
通过 内联 重构,您可以撤销针对方法或变量的提取重构。
将插入符号置于您要内联的代码片段上。
按 Ctrl+Alt+N。 或者,右键点击该代码片段,并在 菜单中选择您需要的内联重构。
在 内联 对话框中,指定内联选项。

(可选)选择 预览 以预览更改。
预览并应用更改。
目前, CLion 提供 内联函数 重构,它与 提取方法 重构相反。
内联变量
内联变量 重构会将冗余的变量用法替换为其初始化器。
变量必须在声明时初始化。 如果初始值在代码中的某处被修改,则只有修改之前的出现位置会被内联。
之前 | 之后 |
|---|---|
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 不支持对以下类别的方法和函数执行内联重构:
用作装饰器的函数
用作引用的函数
使用任意参数解包的函数
生成器
异步函数
构造函数调用
内置函数
带有装饰器的函数
递归函数
带有 * 参数的函数
被重写的函数
带有全局变量的函数
带有 nonlocal 变量的函数
包含其他函数声明的函数
会中断控制流的函数
当您尝试对这些函数或方法中的任意一个执行重构时,将显示警告消息:

最后修改日期: 2025年 12月 2日