-
Python访问UNC路径失败主因是网络重定向未解析,非权限问题;推荐用win32wnet映射盘符或pysmb库直连SMB,注意会话上下文、SMB版本及超时处理。
-
异常捕获应按业务边界划定范围,以完整业务步骤为最小可恢复单元;底层抛具体异常,上层依类型响应;慎用裸except,优先明确异常类型;异常后须做状态清理或补偿。
-
pyproject.toml中extras_require不生效是因为应使用[project.optional-dependencies]而非[project]下的extras_require;环境标记需严格按"pkg;sys_platform=='win32'"格式书写;依赖冲突须用pipcheck或--dry-run检测。
-
默认logging不能直接输出JSON,因其Formatter将日志拼为字符串且字段不可控;需自定义Formatter子类重写format(),过滤不可序列化字段、处理异常堆栈、用json.dumps()输出合法JSON,并通过LoggerAdapter或Filter注入trace_id等上下文字段。
-
元组和列表最核心的区别在于:元组是不可变对象,列表是可变对象。这意味着一旦创建,元组的元素不能被修改、添加或删除;而列表支持增删改查所有操作。这个“不可变性”不是语法限制,而是由Python对象模型决定的底层行为。不可变≠不能包含可变对象元组自身不可变,指的是它的元素个数和每个位置绑定的对象引用不能变。但它完全可以包含列表、字典等可变对象:t=([1,2],{"a":3})是合法元组t[0].append(3)可以执行——修改的是内部列表,元组指向该列表的引用没变
-
应将正则集中管理为命名常量,推荐用REGEX_PATTERNS字典或模块级compiledre.Pattern对象,按地域拆分子模块,启用re.VERBOSE提升可读性,并通过单元测试覆盖匹配/不匹配/边界场景。
-
resample丢数据因默认右闭区间且不填充,需set_index、closed='left'、label='left'并接asfreq或ffill;重复时间戳须先drop_duplicates;islice流式慢因线性扫描,应改用chunksize或np.searchsorted;sleep控速不准,需perf_counter动态校准。
-
最常见的错误是调用async函数未加await导致协程对象未执行;await只能在async函数内使用;混用同步阻塞操作会卡住事件循环;需用asyncwith管理资源并妥善处理取消;create_task()后须保存task引用以避免丢失。
-
delattr不会释放内存,仅从实例字典中移除属性名引用;它不触发垃圾回收,也不等价于del变量,常见于动态删除运行时生成的属性名。
-
condacreate指定Python版本不生效,主因是channel优先级混乱和依赖解析忽略小版本;应加--override-channels-cdefaults或同步指定python/pip版本,并立即用python-c"importsys;print(sys.version)"验证。
-
链式任务(chord)是Celery中先并发执行group内所有子任务、待全部成功后再触发callback任务的任务组合方式;其核心为chord(group,callback),依赖结果后端收集结果,callback接收按group顺序排列的结果列表。
-
asyncio.run()无法捕获SIGINT因其内置信号处理器直接调用loop.stop();优雅关闭需手动创建事件循环、注册信号处理器后运行,Windows需特殊处理;FastAPIlifespan需显式启用;Flask+gevent需spawngreenlet执行异步清理;多进程下各worker须独立实现shutdown。
-
Tushare需token鉴权且免费版限频,Baostock需显式login/logout;两者复权逻辑、日期格式、停牌处理及限流机制均不同,数据使用前须核对文档更新。
-
应显式捕获requests.exceptions.RequestException,配合timeout设置、状态码/异常类型判断重试逻辑,检查Content-Type再解析JSON,并记录脱敏的完整请求响应上下文用于排查。
-
Python字节码由CPython虚拟机解释执行,流程为源码→编译成.pyc(含魔法数、时间戳、codeobject等)→加载为codeobject→PVM基于栈逐条执行指令,所有运行时对象存于堆中,由帧对象管理引用。