1. 数据类型
不可变(3):Number、String、Tuple;可变(3):List、Dictionary、Set。
- List 有序可变支持索引切片 [a,b,c];Tuple 有序不可变 (a,b,c);Set 无序不重复支持交并差 {1,2,3};Dict 键值对键唯一 {k:v}。
2. 装饰器
动态修改函数/类行为,本质接收函数返回新包装函数。类型:函数装饰器 @my_decorator;带参装饰器(工厂函数 @repeat(3));类装饰器;内置 @staticmethod/@classmethod/@property。
真题:
rate_limiter(seconds=10)= 速率限制器装饰器,用nonlocal last_called记录上次调用时间,间隔不足直接返回提示,否则更新时间执行原函数。用于 API 防刷/防重复提交。
3. 迭代器 vs 生成器
迭代器:记住遍历位置,只能往前,通过 iter/next,实现 __iter__/__next__。生成器:用 yield 的特殊函数,迭代中逐步产值而非一次返回,内存效率更高。
4. GIL
全局解释器锁。CPU 密集多线程反而更慢(锁竞争);I/O 密集(并发调 LLM API、读写向量库)多线程可提吞吐。CPU 密集用多进程绕过 GIL。
5. 反射 / GC / 上下文管理器
- 反射:
getattr/setattr/hasattr动态调用,Agent 插件路由常用。 - GC:引用计数为主,标记清除 + 分代回收为辅。
- 上下文管理器:实现
__enter__/__exit__,配合with自动释放资源(DB 连接)。
6. == vs eq
== 是操作符不可重写默认比较值/内存地址;__eq__ 是方法可重写定义相等逻辑。
7. re 正则模块
re.match(开头)/re.search(全文)/re.findall;re.sub/re.split;re.compile 预编译;标志 IGNORECASE/MULTILINE/DOTALL;分组 `/(?P
8. 常用内置函数 & 代码题
数值 abs/round/min/max/sum/pow/divmod;转换 int/float/str/list/tuple/set/dict/chr/ord/bin/hex;迭代 map/filter/zip/enumerate/sorted/reversed/all/any;反射 type/isinstance/getattr/setattr;迭代器 iter/next/range。
真题:行转列
arr = list(map(list, zip(*arr)))。关联技术:数据库与并发
评论