-
Python迭代器是__iter__和__next__构成的协议;for能遍历列表因其实现__iter__,整数无此方法故不可迭代;iter()先查__iter__再试__getitem__(0);StopIteration在for中为正常退出信号,手动next()需捕获;生成器函数比手写类更轻量安全;itertools工具返回惰性迭代器,chain/islice/tee不缓存全量数据。
-
使用timestamp()方法可将datetime对象转换为秒级时间戳,如now.timestamp()输出浮点数;2.用int()转换为整数秒;3.乘以1000并取整得毫秒级时间戳;4.推荐使用带时区的datetime(如timezone.utc)避免时区错误;5.字符串时间可先用strptime解析再转时间戳。核心是时间转数字即转时间戳,注意时区与精度。
-
Python网络编程进阶核心是多客户端下TCP/UDP服务端的稳定高效实现:TCP用threading加锁或asyncio协程管理连接与状态,UDP需自行识别客户端并设计会话机制,混合场景中TCP负责可靠控制、UDP处理实时数据,上线前须日志、超时、抓包和压力测试。
-
覆盖率高不等于质量高:行覆盖仅表明代码被执行,未验证逻辑分支;分支覆盖需显式启用,对权限校验等关键逻辑更可靠;mock易致假覆盖;设阈值须结合风险、排除生成代码与胶水层。
-
抽象类是定义统一接口和强制子类实现逻辑的契约工具,需继承abc.ABC并用@abstractmethod标记必须重写的方法;含抽象方法则不可实例化,但可封装共用逻辑与类属性;子类须实现全部抽象方法,否则仍为抽象类;Protocol适用于轻量、松耦合的接口约定。
-
plt.scatter画散点图时需将DataFrame列转为数组(如.values),c/s参数不接受Series;三维图须用ax.scatter(projection='3d');颜色尺寸映射需归一化或编码,NaN需预过滤。
-
sheet_name=None是读取Excel所有sheet的唯一正确方法,返回以表名为key、DataFrame为value的字典,不包含隐藏表,且需注意表名自动修正和内存占用问题。
-
JSONDecoder默认不支持NaN和Infinity,因JSON标准禁止这些值;可通过object_hook或parse_float(需strict=False)实现兼容解析,但编码时仍需自定义处理。
-
lambda只能写单个表达式,不能写语句;它是匿名函数,不支持return、if、for等语句,仅自动返回表达式结果,常见错误是语法非法或误用条件分支。
-
Python时间比较需确保类型一致、时区明确、精度合理:1.datetime与date不可直接比较,须统一类型;2.naive与awaredatetime不可比,应转为UTC-aware;3.浮点精度差异需归一化处理;4.timedelta仅可与timedelta比较,不可与datetime混用。
-
itertools.chain(*nested)是展开双层嵌套列表最省事的方法,不建中间列表、不递归、纯流式拼接,但需解包且要求子项为非字符串可迭代对象。
-
Canny边缘检测是OpenCV中目标边缘检测的核心方法,包含高斯滤波、梯度计算、非极大值抑制和双阈值滞后阈值化四步;需先灰度化、高斯去噪,合理设置双阈值,并辅以膨胀、轮廓提取等后处理提升实用性。
-
用 Python 做临时文件夹清理,重点不在递归删除本身,而在边界、阈值、白名单和试运行。本文从一个小工具项目出发,带你完成扫描、过滤、预览、删除确认和运行验收,适合处理 __pycache__、旧日志、构建缓存等可清理文件。
-
Python logging 的 Filter 不只是返回 True 或 False。从 Python 3.12 起,挂在 Handler 上的过滤器可以返回替换后的 LogRecord,实现按输出目标改写字段而不污染其他 Handler。本文用 request_id 和脱敏字段拆开旧写法、新语义、并发边界与兼容处理。
-
高效利用Python实现多继承的技巧与经验分享引言:Python是一种强大而灵活的编程语言,其支持多继承的特性使得我们可以更加灵活地设计和组织代码。本文将分享一些关于如何高效利用Python实现多继承的技巧和经验,并提供具体的代码示例。一、了解多继承的基本概念在Python中,我们可以通过在类定义时指定多个父类来实现多继承。例如:classClassA: