-
Python中大写字母用长度为1的字符串表示,如'A';可用string.ascii_uppercase或chr(ord('A')+i)生成A–Z;判断用.isupper(),转换用.upper()。
-
树莓派部署Python应用应选用RaspberryPiOSLite并精简环境:停用avahi等冗余服务、卸载pip等非必要组件、用--without-pip创建虚拟环境并以--only-binary=all安装依赖,配合systemd优化配置,确保启动快、内存省、运行稳。
-
version_id未起作用的根本原因是未正确启用或未纳入事务边界:需在模型中显式声明version_id=True的整型列、禁用default/server_default、确保UPDATE走ORM方法而非原生SQL,且MySQL不支持RETURNING导致StaleDataError延迟抛出。
-
应使用带时间戳前缀的固定窗口键名(如rate:api_v1:1717027200)配合Lua脚本原子执行INCR+EXPIRE,并在脚本中直接判断计数值是否超限,返回当前值与剩余等待秒数,避免竞态与窗口错位。
-
日志级别选择需严格匹配场景:DEBUG仅开发测试用且上线必关;INFO是唯一长期开启级别,记录业务动作;WARNING表潜在问题但未崩溃;ERROR必须带exc_info=True;格式化须用懒求值参数传递而非拼接或f-string。
-
当使用Python的threading.Timer定时执行函数时,若目标函数需要接收参数(如warnTime(i)),必须通过args或kwargs显式传入;直接写Timer(20,warnTime)会导致TypeError,因Timer默认不提供任何参数。
-
不建议手写跨云KMS封装。因AWS、GCP、Azure在密钥生命周期、权限模型、加密原语及错误码上差异显著,强行抽象会导致维护难、调试难;应仅做路由与凭证管理,保留各平台原生API调用。
-
应先用re.compile()预编译正则并捕获异常,避免re.search()报模糊错误;如pattern=re.compile(r"[a-z+{2}")会明确提示{2}前缺右括号。
-
Python装饰器支持链式使用,执行顺序从下到上,即离函数定义最近的最先执行,等价于A(B(func));每层应职责单一,如认证、缓存、计时等,并确保正确透传返回值。
-
直接用LogisticRegression训练原始连续变量会出问题,因金融风控中年龄、收入等与违约非线性相关,且原始变量易受异常值干扰、系数缺乏业务可解释性,不满足监管对模型可解释性的强制要求。
-
含NaN的列自动变为float64,因Pandas2.0前NaN仅浮点支持,整型需升格;2.0起可用Int64等nullable类型配合pd.NA避免升格,convert_dtypes()可自动转换但需满足条件。
-
pytesseract仅适用于干净文字或预处理截图,验证码需用模板匹配或ddddocr等专用工具,真实场景应优先绕过而非识别。
-
rolling.std()是Pandas中计算移动标准差的最直接方法,默认按样本标准差(ddof=1)计算,需指定整数窗口大小,支持时间偏移量(列须为datetime64),对缺失值敏感,结果受min_periods和ddof组合影响显著。
-
maxlen为None时append/appendleft不裁剪元素;为正整数时append右进左出、appendleft左进右出;maxlen=0则静默丢弃所有元素;两者性能差异极小但访问模式影响缓存效率。
-
ElementTree是Python内置的高效XML处理模块,支持解析文件和字符串、遍历查找修改及构建XML。1.用ET.parse()读取XML文件并获取根节点;2.ET.fromstring()解析XML字符串;3.可遍历Element子节点获取标签和属性;4.使用find/findall/iter按标签或路径查找元素;5.通过.text和.get()提取文本与属性;6.处理命名空间时需定义前缀映射。掌握这些核心方法即可应对多数XML操作需求。