GenAI 所需的 Python 基础知识

你熟悉 JavaScript 和 TypeScript。现在你想使用 LangChain 和 GenAI 工具进行开发。你需要 Python。

你不需要从零开始。你可以将 Python 的概念与你已有的知识进行类比。

以下是为 JS 开发者准备的快速对照指南:

核心语法

  • 变量:使用简单的赋值。对于常量,使用大写字母 (UPPER_CASE)。
  • 布尔值:使用 TrueFalse(首字母大写)。
  • Null/Undefined:使用 None
  • 打印:使用 print() 而不是 console.log()
  • 模板字符串:使用 f-strings,例如 f"Hello, {name}"

逻辑与流程

  • 缩进:Python 使用空格/缩进而不是花括号 {}。这是最重要的变化。
  • 真值/假值 (Truthy/Falsy):在 JS 中,空数组 [] 是真值 (truthy)。在 Python 中,空列表 [] 是假值 (falsy)。
  • 比较:Python 的 == 比较值,类似于 JS 的 ===

数据结构

  • 列表 (Lists):类似于 Array。使用 .append() 而不是 .push()
  • 字典 (Dictionaries):类似于 Object。使用 person["name"] 来访问值。
  • 元组 (Tuples):类似于冻结的数组 (frozen arrays)。创建后无法修改。
  • 集合 (Sets):用于存储唯一项以及进行交集等数学运算。

函数式模式

  • Map 和 Filter:使用列表推导式 (list comprehensions) 来代替 .map().filter()
  • 示例:[n * 2 for n in numbers] 可以替代 numbers.map(n => n * 2)
  • 解构 (Destructuring):使用解包 (unpacking) 一次性为多个变量赋值。

现代 GenAI 必备知识

  • Pydantic:这非常关键。LangChain 使用 Pydantic 进行数据验证和结构化输出。
  • 装饰器 (Decorators):它们的作用类似于 React 中的高阶组件 (Higher-Order Components)。通过包装函数来添加逻辑。
  • 异步 (Async):Python 使用 asyncawait,与 JS 一样。使用 asyncio.gather() 来代替 Promise.all()
  • 生成器 (Generators):允许你逐个流式传输 (stream) LLM 的 token。

包管理

  • npm 对应 pip
  • node_modules 对应 .venv
  • package.json 对应 requirements.txt

请务必使用虚拟环境 (.venv) 来保持项目的整洁。

来源:https://dev.to/ajmal_hasan/python-essentials-for-genai-lji