-
2026-01-20 16:07:15
-
2026-01-20 16:09:09
- typing.Protocol 如何定义“鸭子类型”接口约束
- typing.Protocol是Python3.8+中用于定义鸭子类型接口的结构化类型检查机制,不需继承或注册,仅要求实现指定方法和属性签名,运行时无开销,仅被静态检查工具(如mypy)识别,isinstance检查始终返回False。
-
276
-
2026-01-20 16:11:02
- Python JWT 的安全隐患分析
- JWT安全风险主要包括密钥管理不当致签名伪造、算法混淆攻击、Token未绑定上下文引发越权、以及敏感信息泄露与过度授权;需分别采取密钥安全托管、显式限定算法、增强上下文绑定、最小化Payload信息等措施。
-
953
-
2026-01-20 16:12:09
- Python set 去重的底层原理是什么?
- Pythonset去重依赖哈希表机制:先通过__hash__()定位桶,再用__eq__()判等;元素须可哈希且不可变;自定义类需同时正确定义__hash__和__eq__;动态扩容保障O(1)平均性能。
-
755
-
2026-01-20 16:17:02
- SQL OUTER JOIN 的内部执行逻辑
- SQLOUTERJOIN并非先内连接再补NULL,而是以驱动表逐行扫描并强制填充NULL:LEFTJOIN以左表为驱动表,RIGHTJOIN以右表为驱动表,FULLOUTERJOIN需两遍扫描或双哈希表合并,NULL是语义强制而非事后修补,性能关键在驱动表选择与被驱动表ON字段索引。
-
861
-
2026-01-20 16:20:04
- SQL 中字符串比较是否区分大小写?
- SQL字符串比较是否区分大小写取决于数据库默认排序规则及字段配置:MySQL默认不区分,PostgreSQL默认区分,SQLServer和Oracle依赖安装设置;可通过查看字段collation判断,也可在查询或建表时显式指定。
-
241
-
2026-01-20 16:21:08
- Python 代码边界不清会带来什么问题?
- Python代码边界不清表现为函数职责混乱、模块划分模糊、变量作用域滥用、输入输出不明确,导致可读性、可维护性、可测试性下降;应遵循单一职责、分层隔离、参数传递、类型标注等原则重构。
-
650
-
2026-01-20 16:21:16
- sqlalchemy 如何写“存在则更新,不存在则插入”(upsert)
- SQLAlchemy实现upsert有三种方式:一是Core层数据库原生语法(PostgreSQL用on_conflict_do_update、MySQL用on_duplicate_key_update、SQLite用on_conflict_do_update),高效且避免竞态;二是ORM层bulk_upsert_mappings(2.0+),批量处理、不触发事件;三是merge(),自动查再更/插但有性能开销。
-
816
-
2026-01-20 16:21:51
-
2026-01-20 16:23:19