先说结论:Python 不难,难的是改掉 Java 的思维惯性。
说实话,作为一个写了9年 Java 的后端开发,我一直觉得 Python 是"脚本语言",不上台面。
直到最近转型 AI 应用开发,才发现:大模型生态里,Python 是默认语言。
OpenAI SDK、LangChain、Hugging Face... 全是 Python 先行。Java 版本要么滞后,要么社区文档少的可怜。
金句: 「AI时代,Python是入场券,不是选修课。」
# Java 习惯 class UserService: pass # Python 约定 class user_service: # ❌ 错!Python 类名也是大驼峰 class UserService: # ✅ 正确
# Java 风格 userName = "kernel" # ❌ Python 不推荐 getUserName() # ❌ # Python 约定 user_name = "kernel" # ✅ get_user_name() # ✅
Java 里缩进随意,Python 里缩进是语法的一部分:
if True: print("Hello") # ❌ IndentationError!
if True: print("Hello") # ✅ 4空格是标准
金句: 「Python的缩进不是审美问题,是编译问题。」
public void hello() { System.out.println("Hello"); }
def hello(): print("Hello") # 没有分号,没有花括号
一开始总觉得"少了点什么",三天后才发现:这才是代码应该的样子。
List<String> names = Arrays.asList("Alice", "Bob", "Charlie"); List<String> shortNames = new ArrayList<>(); for (String name : names) { if (name.length() <= 4) { shortNames.add(name); } }
names = ["Alice", "Bob", "Charlie"] short_names = [n for n in names if len(n) <= 4]
public class Config { private String host; private int port; // getter/setter... }
config = { "host": "localhost", "port": 8080 } # 直接 config["host"] 取值
Java 的 try-with-resources:
try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) { String line = br.readLine(); }
with open("test.txt") as f: line = f.readline() # 自动关闭文件,不用管
Python 特性太多(装饰器、生成器、元类...),但日常开发只用:
| |
|---|
List | list |
Map | dict |
try-catch-finally | try-except-finally |
interface | |
@Override | |
# 一个简单的命令行工具 import argparse parser = argparse.ArgumentParser() parser.add_argument("--name", help="你的名字") args = parser.parse_args() print(f"Hello, {args.name}!")
python hello.py --name Kernel # 输出:Hello, Kernel!
之前以为 Python 没有类型,后来发现 Python 3.5+ 支持:
from typing import List, Dict def process_users(users: List[Dict]) -> int: return len(users)
IDE 会提示类型错误,写起来有 Java 的安全感了。
Maven 的 pom.xml 写起来头疼。pip:
pip install openai pip install pandas
一个命令搞定,还能生成 requirements.txt 锁定版本。
1. 深入 OpenAI SDK:理解 Chat Completions API 的 Python 封装
2. 学习 LangChain:Python 版的文档最全,Java 版还在追赶
3. 写一个 RAG Demo:用 Python + LangChain + Chroma 搭知识库问答
总结: 「Python不难,难的是改掉Java的肌肉记忆。三天速成,够用就行。」
| | |
|---|
| | |
| | |
| Learn Python in Y Minutes | | |
| | |