Post

Python 基础

不可变(3):Number、String、Tuple;可变(3):List、Dictionary、Set。 List 有序可变支持索引切片 [a,b,c];Tuple 有序不可变 (a,b,c);Set 无序不重复支持交并差 {1,2,3}

后端与工程 阅读 0 点赞 0 评论 0

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.findallre.sub/re.splitre.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)))

关联技术:数据库与并发


继续阅读

全部归档

评论