-
mmap适用于超大文件的随机访问、内存受限场景及多进程共享,但不适用于单次顺序读取或小文件。
-
pipshow无法批量导出license字段,多数包该字段为空或不规范;真正可用的license信息需解析dist-info/METADATA文件,推荐用pip-licenses工具导出CSV或标准化SPDX格式,但须人工复核合规性。
-
requirements.txt是项目依赖的“契约文件”,需区分生产与开发依赖;推荐分层管理:base.txt为运行时依赖并锁定版本,dev.txt为开发工具,避免线上环境冗余安装。
-
应使用pandas.read_csv的na_values和keep_default_na在读取阶段识别自定义缺失标识;设keep_default_na=False避免误判,配合dtype预声明列类型、fillna的limit/method控制填充边界、dask替代处理超大文件、SimpleImputer实现跨chunk一致填充,并通过业务逻辑校验区分真实缺失与有效标记。
-
gevent通过greenlet实现轻量级协程,利用monkeypatch将标准库函数替换为非阻塞版本,结合事件循环自动调度I/O操作,在单线程中以协作式多任务模拟并发,使开发者能用同步写法编写异步程序,适用于I/O密集型场景。
-
最可靠方式是Windows下调用CreateFile并设dwShareMode=0,若返回INVALID_HANDLE_VALUE且GetLastError()为ERROR_SHARING_VIOLATION,则文件被独占打开;Linux/macOS需结合lsof和flock判断。
-
Referer校验主要拦截非授权页面发起的请求,通过比对请求头中的Referer字符串是否来自允许域名;其本质是简单字符串匹配,易被伪造,但常与Origin、Cookie等联合校验。
-
Scrapy扩展是插入到引擎中的组件,用于增强爬虫行为。编写扩展需创建模块、定义类并实现如from_crawler等方法,再在settings中启用。常见用途包括控制速率、记录状态、处理异常、集成监控。扩展区别于中间件和管道,侧重全局控制。调试时可用print确认加载,并合理设置优先级与配置依赖。
-
pandas.merge(...,how='left')是标准左连接,需显式指定on或left_on/right_on,否则报错;左表重复键会复制右表匹配行,NaN表示无匹配,连接前应确保键类型一致、无空值且值对齐。
-
推荐用pathlib.rglob()遍历配置文件,配合is_file()和后缀过滤;正则替换需用re.MULTILINE和注释排除;原地修改必须先备份并校验编码;I/O密集任务优先单线程串行处理。
-
AssertionError是Python中用于调试的内置异常,当assert语句条件为False时触发,语法为assertcondition,message;常用于检查函数参数、中间状态或测试结果,如calculate_discount中验证价格非负;它继承自Exception,但仅适用于开发阶段,可通过python-O禁用,不应用于生产环境的错误处理;避免在assert中执行有副作用的操作,且应提供清晰错误消息,如divide函数中提示“除数不能为零”;合理使用可提升调试效率,防止逻辑错误。
-
实例的dict是存储其可变属性的字典。例如,创建Person实例并设置name和age属性后,__dict__包含{'name':'Alice','age':25};类属性如species不进入实例dict__,除非被实例覆盖;若类定义了__slots__,则实例无__dict__;可直接通过__dict动态添加或修改属性,如p.__dict__['city']='Beijing'等价于p.city='Beijing',但需注意绕过封装和slots限制。
-
Python中“一切皆对象”是事实,指所有可命名、传递或操作的实体均具备身份(id)、类型(type)和值(value)三要素,且函数、类、模块等均为对象,可变与不可变的区别在于操作是否改变对象内存地址。
-
dir函数用于查看对象的属性和方法,调用dir()可列出当前作用域名称,dir(对象)则返回该对象的属性与方法列表,如dir(list)查看列表方法、dir("hello")查看字符串方法;常用于快速浏览模块内容,如importos;dir(os),结合help()深入了解方法,适合交互式环境使用,返回值为字符串列表,双下划线开头结尾为特殊方法,日常关注普通名称即可,多练习可快速掌握。
-
直接用heapq不能当优先级队列用,因其仅提供堆操作原语,不支持更新优先级、按值删除或最大堆;常见错误是直接插入(priority,item)元组而item不可比较,导致TypeError。