python教程技术文章
-
reduce是functools模块中用于序列累积运算的函数,需传入二元函数、非空可迭代对象及可选初始值,如reduce(lambdax,y:x+y,[1,2,3,4])返回10。430 收藏 -
处理大文件应避免全量加载内存,优先采用流式、分块或延迟加载方式:逐行读取、mmap随机访问、ijson/xml流解析、csv.DictReader+islice跳行、gzip/bz2直接解压、dask/polars替代pandas、sqlite3加速过滤,并用with管理句柄、psutil监控内存、ThreadPoolExecutor重叠IO。430 收藏 -
加User-Agent仍403是因为网站需Referer和Cookie等组合校验:Referer须匹配合法上级页面,Cookie需时效有效且环境一致,缺一即拦截。430 收藏 -
直接用pika封装而非Celery,因后者抽象过深、依赖繁重;pika更轻量可控,但需自行实现连接池、重连、消息确认等关键逻辑。430 收藏 -
vars()本质是obj.__dict__的安全封装,仅对拥有__dict__的对象有效;无__dict__时(如__slots__类、内置类型)会抛TypeError,此时应改用hasattr检查或dir()+getattr组合获取属性。429 收藏 -
Python迭代器协议核心是__iter__和__next__两个方法:前者返回迭代器对象(可为self或新实例),后者返回下一项或抛StopIteration;遵守该协议即支持for循环等操作,无需继承或装饰。429 收藏 -
dataclass能省略__init__和__repr__是因为@dataclass在类构造期自动生成这些方法,而非继承或运行时patch;若手动定义了__init__,则装饰器跳过生成。429 收藏 -
用 Python 标准库 contextlib 写一套资源清理小配方,从自定义上下文管理器、suppress 到 ExitStack,解决文件、临时目录和多资源关闭顺序问题。429 收藏 -
itertools.chain(*nested)是展开双层嵌套列表最省事的方法,不建中间列表、不递归、纯流式拼接,但需解包且要求子项为非字符串可迭代对象。428 收藏 -
Canny边缘检测是OpenCV中目标边缘检测的核心方法,包含高斯滤波、梯度计算、非极大值抑制和双阈值滞后阈值化四步;需先灰度化、高斯去噪,合理设置双阈值,并辅以膨胀、轮廓提取等后处理提升实用性。428 收藏 -
用 Python 做临时文件夹清理,重点不在递归删除本身,而在边界、阈值、白名单和试运行。本文从一个小工具项目出发,带你完成扫描、过滤、预览、删除确认和运行验收,适合处理 __pycache__、旧日志、构建缓存等可清理文件。428 收藏 -
使用Git进行版本控制,通过初始化仓库、添加文件、提交更改和推送远程仓库实现协作;创建功能分支开发避免主干污染;规范提交信息并结合PullRequest进行代码审查;配置.gitignore忽略缓存与敏感文件;使用虚拟环境隔离依赖并导出requirements.txt确保环境一致。427 收藏 -
文章 · python教程 | 2个月前 | 日志 · 工程化 · 异步编程 · 故障排查 · 可观测性 · Python教程 · Python 异步任务 可观测性 logging contextvars 生产实践 QueueHandler QueueListener request_id JSON日志
从 Python 服务 request_id 丢失和日志阻塞问题入手,实战讲解 contextvars、logging.Filter、JSON 日志、QueueHandler/QueueListener 与上线检查。427 收藏 -
update()方法用于更新字典内容,语法为dict.update(other);可传入字典、包含键值对的可迭代对象或关键字参数;若键存在则覆盖值,不存在则添加新键值对;如d={'a':1,'b':2}调用d.update({'b':3,'c':4})后输出{'a':1,'b':3,'c':4};使用关键字参数时键必须为合法标识符;传入元组列表形式如[('b',3),('c',4)]也可批量更新;该方法直接修改原字典不返回新对象,需复制原字典以保留原始数据;常用于合并配置或补充默认值场景。425 收藏 -
文章 · python教程 | 1天前 | 反射 · python · 兼容性 · 类型检查 · 类型注解 · format Python 3.14 annotationlib get_annotations ForwardRef 延迟注解
Python 3.14 新增 annotationlib,为读取延迟求值的类型注解提供 VALUE、FORWARDREF 和 STRING 三种格式。本文用插件注册器场景说明三种结果如何选择、未定义前向引用怎样保留,以及为什么生产代码不应随意求值注解,并给出旧版本兼容路径。425 收藏