python教程技术文章
-
__slots__仅限制动态添加实例属性,不阻止已有属性赋值、类属性、描述符、property或子类绕过;__setattr__是统一校验入口,需谨慎处理内置属性;不可变性需深拷贝或封装,而非依赖tuple/frozenset。200 收藏 -
Python类序列化应避免直接使用pickle,因其存在兼容性、安全性和可维护性问题;推荐优先采用字典+JSON方案,通过to_dict()和from_dict()显式控制字段,并对特殊类型做预处理;复杂场景可选用dataclass+dacite或pydantic提升开发效率与健壮性。197 收藏 -
Python中迭代器和生成器实现懒加载以节省内存,迭代器需实现__iter__和__next__方法,生成器函数用yield简化编写并自动支持状态暂停与恢复。374 收藏 -
带参数装饰器本质是三层嵌套函数:最外层接收装饰器参数并返回中间层装饰器,中间层接收被装饰函数并返回内层wrapper,内层负责执行逻辑与重试等操作。494 收藏 -
Python字符串切片和内置方法是高效编码的关键工具:切片s[start:end:step]支持省略参数、负索引与越界安全;方法如strip()、split()、join()等均返回新字符串,需赋值生效,组合使用可简洁解决实际问题。329 收藏 -
CSV中文乱码需匹配真实编码,常见为GBK或utf-8-sig;dtype须显式指定防类型错误,如手机号用str、含空整数用"Int64";结构异常用skiprows/header/usecols调整;大文件用chunksize分块处理,nrows仅截断。338 收藏 -
答案:Python中创建类需使用class关键字定义属性和方法,通过\_\_init\_\_初始化实例,self引用对象本身,支持继承、多态及魔术方法实现高级行为。443 收藏 -
路径分隔符、换行符、包名大小写、环境变量四类问题需统一处理:用pathlib.Path替代字符串拼接,文本文件操作加newline=""参数,requirements.txt全小写,环境变量用os.getenv+pathlib.Path.home()兼容跨平台。319 收藏 -
python-docx仅支持.docx格式,不支持.doc;其paragraphs仅含正文段落,不含标题、表格等;中文显示依赖字体名但不校验存在性;纯文本提取需过滤空段落并逐run拼接。179 收藏 -
Toplevel不能直接替代messagebox的阻塞效果,因其默认非模态且wait_window()需显式调用、时机正确、配合destroy()才生效;否则主逻辑继续执行,无法获取返回值。409 收藏 -
Referer防盗链需设为真实上级页面URL(如"https://example.com/article/123"),并配合匹配的User-Agent、必要Cookie及Accept等头字段,否则易返回403。318 收藏 -
判断字符串是否含不可打印字符应优先用正则/[\p{Cc}\p{Cf}]/u匹配Unicode控制与格式字符,辅以语言内置方法如Python的isprintable()、JS的codePointAt()、Java的isISOControl()、Go的unicode.IsControl(),并注意零宽字符、BOM、ANSI序列等易忽略情况。350 收藏 -
可视化多线程的关键是呈现并发行为、状态变化与数据流向,需通过轻量日志打点采集锁事件、任务执行、阻塞等可观测点,再用ChromeTracing、Matplotlib甘特图或FlameGraph等工具按目标维度绘图。384 收藏 -
map和filter在Python3中返回迭代器而非列表,需用list()转换才能直接查看或重复遍历;惰性求值节省内存,但调试易因遗漏list()导致无输出。324 收藏 -
最长公共子串的DP状态定义为dpi表示以s1[i-1]和s2[j-1]结尾的最长公共子串长度,转移方程为:相等时dpi=dpi-1+1,否则为0,需实时更新全局最大值。263 收藏