-
闭包是捕获外层变量的嵌套函数,需满足嵌套定义、引用外层局部变量、返回内层函数三条件;装饰器是基于闭包实现的语法糖,用于增强函数功能,常见于缓存、校验、计时等场景。
-
TensorBoard直方图不显示参数需检查:是否在tf.function或record_if(True)内调用、变量是否已初始化、file_writer是否正确激活;PyTorch需用.data取值并移至CPU;直方图挤压因尺度差异,应分层命名并配合标准差监控;日志路径需匹配且至少两步数据才显示标签页。
-
Numpy核心在于理解ndarray内存布局、axis语义和广播规则。shape与strides共同决定数据读取方式;axis指要压缩的轴;广播需尾部轴对齐且维度为1或相等。
-
装饰器本质是函数式组合的语法糖,即@decorator等价于func=decorator(func),其核心是返回兼容原函数签名的新函数,并需用@wraps保留元信息以支持类型检查与IDE推导。
-
应统一配置管理:用pydantic-settings作为唯一入口,禁用直接调用os.getenv或configparser;pyproject.toml仅存工具链配置;按环境变量加载对应配置文件;避免热更新,优先重启进程。
-
Flask实现SSE需用yield返回生成器,设Content-Type:text/event-stream和Cache-Control:no-cache,每条消息末尾双换行;前端用EventSource监听onmessage/onerror并手动重连;生产环境必须用异步服务器如uvicorn或gunicorn+gevent。
-
被封IP时requests典型表现为连接超时或ConnectionResetError,而非403;需检查response.text含验证码关键词或Location头,根本原因是出口IP入黑名单,换UA或sleep无效。
-
type是类的构造器而非类型检查函数,其底层调用type('A',(),{})动态创建类;Python3中元类需用metaclass=MyMeta关键字指定;元类的new创建类对象,__init__修改类对象,__call__控制实例化过程。
-
Counter是Python中用于统计元素出现次数的高效工具,源自collections模块。通过fromcollectionsimportCounter导入后,可对列表、字符串等可迭代对象进行计数,如Counter(['a','b','a'])返回各元素及其频次。常用方法包括most_common(n)获取前n高频元素,elements()还原元素序列,update()增加计数,subtract()减少计数,并支持加减与集合运算。适用于词频统计、异位词判断等场景,代码简洁且功能强大。
-
设计模式非必需,而是成熟经验总结;小项目优先写清晰可运行代码,中大型项目用模式降低协作成本;Python特性使部分模式简化;应关注代码坏味道而非强行套用模式。
-
del不直接删除对象,而是删除变量对对象的引用;对象是否销毁取决于引用计数是否降为0,降为0时CPython立即回收内存。
-
Python的logging比print更安全,因其分离输出内容与目标、支持分级控制(DEBUG到CRITICAL)、多目标输出(文件/邮件/网络等)、线程安全及格式化上下文(时间、模块、行号、线程ID等),而print仅简单输出至stdout,无级别、无目标控制、非线程安全、格式不统一。
-
cattrs.structure变慢因默认走全反射+动态类型推导路径,每次调用重复检查字段、查找转换器;提速关键为提前固化类型映射,如用GenConverter并复用实例。
-
Python中weakref模块通过弱引用机制打破循环引用以防止内存泄漏,具体包括:一、weakref.ref创建不增加引用计数的可调用弱引用;二、WeakKeyDictionary使键对象销毁后自动移除对应项;三、WeakValueDictionary使值对象销毁后自动失效对应条目;四、在回调中用weakref.ref避免闭包强持有对象;五、weakref.finalize注册对象销毁前的清理回调。
-
应优先使用pathlib(Python3.4+)或os.path.join()拼接路径,避免手动拼接斜杠;pathlib自动处理分隔符、规范化和跨平台逻辑,如Path("data")/"raw"/"input.csv"。