-
捕获特定异常比全局except更安全,因后者会吞掉KeyboardInterrupt和SystemExit;应按实际错误类型捕获,如FileNotFoundError、ConnectionError;多异常用元组但勿堆砌;不确定时用exceptException:;捕获后须日志或re-raise;finally在os._exit()或SIGKILL时不执行;else用于无异常才执行的逻辑,提升错误定位精度;嵌套try比长链except更清晰。
-
OMP_NUM_THREADS控制PyTorch底层OpenMP线程数,影响BLAS/MKL并行性能;需在importtorch前设置,与torch.set_num_threads()独立作用,多进程下须避免嵌套并行导致的性能抖动或死锁。
-
TensorFlow2.x中应使用tf.keras.applications直接加载预训练模型,如ResNet50(weights='imagenet'),自动下载权重;去顶层用include_top=False;必须用对应模型的preprocess_input预处理,不可混用或手动归一化。
-
async/await不等于自动并行,单个await默认串行等待,需用asyncio.gather()或create_task()显式并发;同步代码中直接调用async函数不会执行;漏await会返回协程对象而非结果;asyncio.sleep()默认不响应中断,需额外处理。
-
爬虫异常需分层处理:网络层设timeout并检查状态码,解析层预判节点存在性与编码问题,逻辑层断言字段格式并监控反爬特征;统一日志、重试与告警实现可观测性。
-
OpenCV-Python通常比PIL快,但取决于操作类型、图像尺寸和是否启用硬件加速;cv2.imread读JPEG比PIL快20%–40%,而PIL在仅查尺寸或EXIF时更优,颜色空间转换和隐式复制是主要性能陷阱。
-
Python中反转列表应根据需求选择:需就地修改用list.reverse(),保留原列表用切片[::-1],仅遍历一次且省内存可用reversed()。
-
as_strided比for循环快是因为它不复制数据,仅修改shape和strides生成视图;而for循环反复分配内存拷贝,易触发GC或爆内存,但as_strided需手动计算strides,错误会导致脏内存、崩溃或异常值。
-
TF2.x中应使用tf.data.Dataset替代已弃用的tf.train.string_input_producer和tf.train.start_queue_runners;通过interleave、map的num_parallel_calls和prefetch实现高效并行读取,避免手动线程管理。
-
MirroredStrategy在Linux上卡死大概率是NCCL选错网卡,需显式设置NCCL_SOCKET_IFNAME指向高速数据网口(如ens1f0、ib0),且所有worker节点值必须一致;Windows因NCCL不兼容,须改用HierarchicalCopyAllReduce后端。
-
json_normalize比手写递归更可靠,因其专为展平嵌套结构设计,内置处理None、空列表、混合类型等边界情况,并按record_path和meta精准提取结构化记录与上下文字段。
-
strftime在高频场景下性能差,因其每次调用需解析格式串、本地化查表、动态拼接;替代方案如f-string拼接、isoformat截断可快3–10倍,但需权衡动态格式与本地化需求。
-
Django复杂系统架构核心是控节奏、分边界、留余地:模型按业务域切分并隔离关联,API与页面分离且URL即契约,配置多环境拆分并零硬编码,外部集成通过接口抽象与适配器实现。
-
本文介绍如何在Pandas中为每位客户高效提取其访问记录中首个和末个非“Direct”渠道;若全为“Direct”,则回退取“Direct”本身,并确保按时间顺序准确判断。
-
Pydanticv2中临时排除字段用.model_dump(exclude=...),永久排除用Field(exclude=True);私有字段不再自动忽略,必须显式设置exclude;exclude=True不影响验证,仅控制序列化输出。