-
KeyError发生时不能直接用dict[key],因为该操作在键不存在时立即抛出异常,而实际场景(如解析API响应、读取配置)中键常不确定;推荐用dict.get(key,default)安全访问,它返回默认值而非报错,但需注意嵌套调用陷阱及可变默认值风险。
-
mashumaro的to_dict()只序列化带类型注解且非InitVar的字段,无注解字段(如nickname="anon")会被忽略;to_json()不支持indent参数,需先to_dict()再json.dumps(...,indent=2);datetime需显式配置metadata或SerializationStrategy才能序列化。
-
Python创建新对象的时机取决于类型、赋值、运算及构造函数调用:不可变对象“修改”时必新建;可变对象需显式复制才新建;字面量、工厂函数、lambda、类实例化均每次新建。
-
应使用pathlib.Path而非字符串拼接路径,因其自动适配跨平台分隔符、支持运算符拼接、可调用resolve()规范化路径、具备类型安全与路径校验能力,避免os.path.join或'/'手动拼接引发的兼容性问题。
-
Linux下Python环境配置核心是版本隔离与依赖管控:用pyenv管理多版本(不触碰系统Python),venv隔离项目依赖,pipx管理命令行工具,pip.conf配置镜像源提升安装效率,并通过shebang和chmod使脚本直接可执行。
-
点击式验证码本质是语义理解与区域定位任务,需先用OpenCV预处理图像(裁剪、去噪、光照均衡),再交由轻量视觉模型(如YOLOv5s或MobileNetV3)推理识别,而非依赖OCR或简单模板匹配。
-
ROC曲线画不出需确认输入为正类概率或决策函数值;多模型ROC需复用ax参数叠加绘制;AUC值与曲线不匹配常因混淆AP与AUC或未正确处理多分类;保存高清图应调用tight_layout()于legend后并设bbox_inches='tight'。
-
classification_report需显式指定labels确保类别顺序与业务一致,配合confusion_matrix查混淆细节,按业务选average方式,结合预测概率调优阈值,而非依赖默认输出。
-
Pythonjson模块进阶用法包括:自定义default函数序列化类实例;用object_hook反序列化为对象;ensure_ascii=False保留中文;文件操作需显式指定UTF-8编码;通过parse_float/parse_int等参数增强安全性,禁用eval系函数。
-
Selenium4是执行JS渲染页面的首选工具,因其废弃DesiredCapabilities、支持相对路径Service、原生自动下载驱动、强制显式等待、统一find_element方法、强化无头模式反检测及精准渲染判断。
-
Python3删除input()是为消除Python2中input()隐式调用eval()导致的任意代码执行风险,改用安全的raw_input()行为并强制显式类型转换。
-
开启L1正则化需显式设置penalty='l1'及solver='liblinear'或'saga',因其他solver不支持L1;L1可得稀疏解用于特征选择,但须标准化以防量纲影响,且部署时需固化特征掩码以保证列对齐。
-
re.finditer默认不支持重叠匹配,需用(?=())捕获组实现;含特殊字符须re.escape;str.find循环更轻量、可控,重叠时改pos+1,空字符串需前置校验。
-
直接用pad_packed_sequence报错“Expectedhiddentobeatuple”是因为RNN(如LSTM)接收packed输入时,必须显式提供元组形式的初始隐状态(h₀,c₀),不可为None或单张量;且hidden第一维须为num_layers×num_directions,batch_first参数需与pack_padded_sequence严格一致。
-
django-elasticsearch-dsl是第三方库,需手动安装ES客户端、配置连接、定义索引,信号仅同步增删改,重建索引需运行search_index--rebuild,search()返回Search对象而非QuerySet,分页用切片,精确匹配须用keyword子字段,类型映射错误或同步延迟易致搜索异常。