跳到主要内容

Module 6: Modules — 拿来主义

鲁迅说过:"拿来主义"——好东西不用自己造,直接拿来用。编程也是一样的道理。

你写的每一行代码都站在无数前人的肩膀上。不管是排序算法、HTTP 请求还是画图表——别人早就写好了,而且比你写得好。你要做的就是:把它拿过来,用好它

这就是"模块"和"包管理"存在的意义。

这一章你会学到

主题你会学到
导入与导出Python 的 import vs JS 的 import/export,两套语法有什么区别
包管理器pip vs npm,怎么安装别人写好的轮子
项目组织怎么把自己的代码拆成多个文件,让项目不变成一锅粥

为什么模块这么重要?

想象一下没有模块的世界:

  • 所有代码写在一个文件里——3000 行的 main.py,恭喜你创造了"意大利面条代码"
  • 别人写好的功能你全部重写一遍——重复造轮子,而且你的轮子大概率是方的
  • 和同事协作?合并代码就是战争——你改了第 500 行,他也改了第 500 行

模块系统帮你解决这三个问题:拆分代码、复用代码、协作代码

问问 AI

问 AI:"如果一个项目有 10 万行代码,全部写在一个文件里会怎样?帮我描述一下那个噩梦场景。"

感受一下那个恐怖氛围,你就会明白为什么"模块化"是每个程序员必学的技能了。

两种语言,两种哲学

Python 和 JavaScript 的模块系统都很成熟,但风格截然不同:

  • Python 的模块系统非常"正统"——import 一个关键字走天下,简洁明了
  • JavaScript 经历了"模块系统内战"——CommonJS 和 ES Modules 打了好几年,现在 ESM 终于赢了(但 CommonJS 还没死透)

别担心,我们会把这些理清楚。先从最基础的"怎么把别人的代码拿过来"开始吧!