-
应选'a'模式追加文件,但需先检查zip文件是否存在且非空,否则空文件会触发BadZipFile异常;'w'模式会覆盖原文件,'r'模式不可写入。
-
type()创建类的三个必需参数是name(字符串类名)、bases(元组形式的父类列表)、dict(类体命名空间字典);缺一或类型错误即抛TypeError,且dict中方法须为可调用对象。
-
memoryview.cast()仅在底层缓冲区字节存储、目标dtype元素大小整除总字节数且对齐无冲突时实现零拷贝;bytes仅支持cast('B'),array.array和bytearray在长度匹配前提下可安全转换,numpy.ndarray支持更灵活的reinterpret_cast。
-
f-string(格式化字符串字面量)是Python3.6引入的最简洁、高效、可读性最强的字符串格式化方式。它直接在字符串前加f或F,花括号内写表达式,运行时实时求值并转换为字符串。基础用法:变量插值与表达式计算只需在字符串前加f,把变量或任意合法表达式放进{}中即可:name="Alice";age=30;print(f"Hello,{name}.Youare{age}yearsold.")→Hello,Alice.Youare30yearsol
-
字典翻转时原value重复会导致数据丢失,因新key必须唯一;应先检查value唯一性或用defaultdict(list)处理重复,单层无重复场景推荐{v:kfork,vind.items()}。
-
requests.Session能自动携带Cookie是因为它内部维护CookieJar,自动解析Set-Cookie并在后续请求中按域名、路径等规则注入Cookie头;必须用同一实例完成登录与后续请求,且登录接口须正确返回有效Set-Cookie。
-
Python循环引用需用weakref打破、避免__del__、慎用gc.collect(),典型场景如父子节点、观察者模式、闭包隐式引用,调试宜用objgraph而非DEBUG_SAVEALL。
-
模型并行是将单个模型拆分到多卡,各卡负责不同层;而DataParallel和DDP是数据并行,需模型完整副本在每卡。仅当单卡显存不足时才用模型并行,否则优先选DDP。
-
np.genfromtxt读带表头CSV时第一行出错,因默认不跳过表头且尝试将字符串转float报错;需用skip_header=1跳过表头,配合missing_values、filling_values处理缺失值,并注意编码与dtype设置。
-
GeneratorExit不能用try-except捕获,它继承自BaseException而非Exception;资源清理必须放在finally块中,且finally内不可yield。
-
reset_index()默认不删除原索引列,而是将其转为普通列;需加drop=True才真正丢弃,inplace=True可直接修改原对象,否则须赋值接收返回值。
-
TfidfVectorizer更适合大多数文本分类任务,因其通过TF-IDF加权自动抑制高频无意义词、增强判别性词汇权重,通常比CountVectorizer提升1–5个百分点准确率,尤其在短文本或类别边界模糊时效果更显著。
-
max(d,key=d.get)可直接获取字典中值最大的键,适用于非空字典且值可比较;空字典会抛ValueError,多最大值时仅返首个,类型混杂需在key中兜底处理。
-
唯一稳妥路径是用conda创建Python3.9环境:condacreate-ntf29python=3.9,再condainstall-cconda-forgetensorflow=2.9.0;因TensorFlow2.9官方不支持Python3.10+,其二进制包依赖libpython3.9.so,ABI不兼容导致pip强装必失败。
-
Lock是非可重入互斥锁,同一线程重复acquire会死锁;RLock是可重入锁,支持同一线程多次acquire和对应次数的release,适用于递归或嵌套调用场景。