-
2026-01-27 19:35:49
-
2026-01-27 19:37:34
-
2026-01-27 19:38:56
- Python 切片操作的复杂度与优化
- Python切片时间复杂度为O(k),k为结果长度;list/str/tuple切片均创建新对象,range切片为O(1),自定义类由__getitem__决定,numpy切片通常为O(1)视图。
-
871
-
2026-01-27 19:39:10
-
2026-01-27 19:39:20
- 类变量在多进程 fork 后的行为与修改陷阱
- fork后类变量不共享。子进程获得父进程内存副本,类变量初始值相同但物理隔离,修改互不影响;可变对象的就地修改看似生效实为COW机制下的短暂共享,后续写操作即触发内存分离。
-
882
-
2026-01-27 19:40:59
- Python 可调用对象的类型判断
- 判断对象是否可调用应使用callable():它专为此设计,通过检查call方法实现且覆盖所有可调用协议,比isinstance(obj,Callable)、字符串匹配类型名或hasattr(obj,‘__call__’)更准确可靠。
-
637
-
2026-01-27 19:41:02
-
2026-01-27 19:41:02
- Python 对象 ID 与内存地址的对应关系
- id()返回对象在生命周期内的唯一标识,在CPython中是PyObject*地址转成的整数,但非标准内存地址;小整数(-5~256)和部分字符串会被缓存导致相同id,可变对象就地修改id不变,新建则变。
-
222
-
2026-01-27 19:42:03
- Python 模块拆分与依赖控制技巧
- 避免循环导入需延迟导入、提取公共模块或用字符串类型注解;__init__.py应仅定义接口和轻量导出,禁放耗时初始化;pyproject.toml需分场景管理依赖;动态导入适用于插件式或条件性功能。
-
546
-
2026-01-27 19:42:47
- Python itertools 常用迭代组合技巧
- itertools.chain是合并多个可迭代对象的最优解,惰性求值、内存友好;chain.from_iterable适用于嵌套结构;groupby需预排序才能正确分组;islice是安全截取迭代器的唯一方式。
-
371