编辑与重构
这是什么:PyCharm 最值钱的部分——懂整个项目的补全、检查与重构。不是「打字快」,是「改得动」:函数改名,全项目几十处调用一次到位。
为什么用:脚本写完只是开始,改需求才是日常。没有重构工具,改名靠搜索替换,容易漏、容易误伤;有了它,改名、提取函数都由 IDE 保证一致性。
如何用:从一个会算平均分的小程序开始,把补全、快速修复、重命名各按一遍。
智能补全:按类型给建议
def average(nums: list[float]) -> float:
return sum(nums) / len(nums)
scores = [88, 92, 79]
print(f"平均分:{average(scores):.1f}")
输出:
平均分:86.3
| 操作 | 快捷键 | 体验 |
|---|---|---|
| 基本补全 | Ctrl+空格 |
输入 ave 弹出 average,带签名与类型提示 |
| 类型感知 | 自动 | scores. 之后只弹 list 有的方法,dict 的不会混进来 |
| 参数提示 | Ctrl+P |
光标在括号里按,显示每个参数 |
| 快速看文档 | Ctrl+Q |
悬停/按下弹函数说明 |
类型标注(list[float]、-> float)不是装饰:PyCharm 靠它把补全从「猜」变「准」——这是面向对象之前就该养成的习惯。
Alt+Enter:看见红线就按它
红色波浪线 = PyCharm 认为有问题。光标放到红线上按 Alt+Enter,它会直接给出修法:
- 名字拼错(
avrage):弹「重命名为 average?」——做一次真重命名,不是改字符 - 忘了导入:自动补
import一行 - 未使用的变量/类型不对:给一键修复或安全删除
红线不可怕,可怕的是无视它。养成本能:出红线 → Alt+Enter → 回车。
Shift+F6:重命名是重构,不是替换
把 average 改名为 mean:光标放函数名上按 Shift+F6,输入新名字回车——定义与所有调用点一起变。它不是文本替换:同名但无关的变量、注释里恰好出现的词都不会被误伤。
同门兄弟:
| 快捷键 | 重构 | 干什么 |
|---|---|---|
Shift+F6 |
重命名 | 变量/函数/文件全局改名 |
Ctrl+Alt+V |
提取变量 | 把表达式抽成变量并命名 |
Ctrl+Alt+M |
提取方法 | 把选中代码抽成函数 |
F6 |
移动 | 挪文件自动改所有 import |
Live Templates 与格式化
main+ Tab:自动展开if __name__ == '__main__':——最高频模板;Ctrl+J可呼出全部模板列表Ctrl+Alt+L:按 PEP 8 格式化整个文件——缩进、空行、空格全理顺,从此不纠结格式Ctrl+/:注释/取消注释选中行
记忆口诀:红线就按
Alt+Enter,改名Shift+F6全局到;main回车出骨架,保存之前Ctrl+Alt+L。
❓ 常见问题
Q1:Ctrl+空格 按了没反应?
Windows 上大概率被输入法切换占用了。不用抢:输入时补全会自动弹出;非要手动呼出,到 设置 → 键盘映射 里改 Basic Completion 的快捷键。
Q2:重构后 git 里改动一大片?
正常且健康:重构改动是机械一致的小改动,code review 时一眼扫过。把「重构」与「改功能」分开提交更清晰。
Q3:没有红线但运行报错?
静态检查不是万能,运行时才确定的错误它测不到——该调试器上场了。
📝 本章小结
- 补全按类型给建议,类型标注越全补全越准
- 红线 →
Alt+Enter:快速修复是 PyCharm 的日常 Shift+F6是语义级重命名,全项目一致、不误伤main+Tab、Ctrl+Alt+L格式化,两个习惯用一辈子
动手改
- 把本章代码敲进项目(感受补全),故意把
average打成avrage,用Alt+Enter修好 Shift+F6把scores改名raw_scores,再Ctrl+Z撤销——重构可以大胆试错- 新建文件试试
main+Tab,然后Ctrl+Alt+L格式化一遍