-
会。同步函数直接await会卡死事件循环,因time.sleep、requests.get等阻塞操作会阻塞事件循环线程;应使用loop.run_in_executor或asyncio.to_thread(3.9+)将其交由线程池执行。
-
一维前缀和用长度n+1数组存储,prefix[i]表示前i个元素和,查询[l,r]为prefix[r+1]-prefix[l];二维需多开行列,用容斥公式prefixr2+1-prefixr1-prefixr2+1+prefixr1。
-
pd.merge()默认是内连接而非按行拼接,只保留连接键在左右表中都存在的行;常见错误包括类型不一致、列名不同、重复键导致笛卡尔积,应检查dtypes、统一列名、合理选how参数,并避免误用merge替代concat。
-
表单元素找不到需先确认是否在iframe中,必须用switch_to.frame()切换上下文;下拉、日期、富文本等控件需模拟真实用户操作;ActionChains.click()不生效时检查遮挡或就绪状态;填完需手动触发change等事件,提交前验证按钮状态。
-
上下文管理器的核心机制是对象实现__enter__和__exit__方法:with语句自动调用__enter__获取返回值,并在退出时(无论是否异常)调用__exit__执行清理;后者接收exc_type、exc_value、traceback三参数,返回True可抑制异常。
-
dateparser.parse()更适合爬虫时间解析,因其无需预设格式,支持多语言、相对时间推算、时区识别和模糊表达理解,而strptime()需硬编码多种格式且无法处理“昨天”“2小时前”等动态表述。
-
Observer类应使用WeakSet存储观察者以自动清理、notify前转list副本避免迭代错误、区分协程/普通observer异步调度、统一update接口并传参防循环引用。
-
NumPy花式索引中a[rows,cols]本质是笛卡尔积配对,rows[i]与cols[i]组成第i个坐标,要求两数组等长,否则报IndexError;一维数组不支持双索引,需reshape或ravel_multi_index转换。
-
不安全。Flask的session虽支持字典操作,但仅防篡改不加密,依赖SECRET_KEY签名Cookie;未设密钥则静默失效;应优先用session.get()防KeyError,并避免存敏感数据。
-
NumPy数组不能直接当字典键,因其可变且无hash值;tobytes()是最稳妥的转换方式,将数组内存布局序列化为不可变bytes,但需注意dtype、连续性及NaN等细节。
-
快速排序栈溢出主因是递归终止条件错误,应统一用ifleft>=right:return作递归基;划分后左右子数组下标须合法,避免重复处理基准或越界;大数组需改迭代或混入插入排序。
-
Python数据模型的核心是协议,即通过实现特定方法(如__len__、__getitem__等)使对象支持对应操作;常用协议包括__init__/__new__、__str__/__repr__、__eq__/__hash__、__contains__,且协议间存在隐含约束。
-
on_train_batch_end未触发是因Keras默认仅在epoch结束时调用,batch级回调需显式设置steps_per_epoch或使用tf.data.Dataset避免隐式补齐;其logs为只读,不可修改;多GPU下仅chiefworker执行,需用strategy.reduce()同步;save_weights报错常因eager模式与保存格式不兼容,推荐用save_model。
-
skl2onnx保存sklearn模型为ONNX需先fit模型并提供带类型和shape的X_sample;convert_sklearn依赖拟合后属性推导schema;输出字段名比索引更可靠;体积增大是因参数展开为常量节点,属正常现象。
-
pandas读取Excel合并单元格时仅保留左上角值,其余为NaN,因合并属显示层操作,底层无数据对应;可用ffill按行填充连续NaN,但不恢复合并格式。