Python
文章平均质量分 90
Python
Dontla
Life is short, I use AI.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python PRAW介绍(Reddit API封装库)Python Reddit API Wrapper、惰性加载Lazy Loading、asyncpraw、信息聚合
PRAW 本质上是:一个以 Python 风格重新包装 Reddit API 的开发工具。Reddit API 使用复杂OAuth 繁琐JSON 操作冗长评论树难处理等问题。降低 Reddit 自动化开发门槛Reddit BotAI Agent社区分析自动化运营数据采集PRAW 依然是非常经典且实用的工具。Multi-Agent 信息聚合系统Reddit 舆情分析平台社区自动化工具那么理解 PRAW 的设计方式,依然很有价值。原创 2026-05-26 19:26:08 · 503 阅读 · 0 评论 -
Python httpx介绍(现代 HTTP Client)(异步请求、aiohttp、现代版Requests、httpcore、anyio、Async IO、HTTP/2)
HTTPX 本质上代表的是:Python 网络生态从同步时代向 Async 时代的演进。它的价值不在于:“比 Requests 更高级”。而在于:它更适合现代网络系统。Async 会增加复杂度HTTP/2 不一定带来巨大收益小项目可能没必要引入因此:HTTPX 并不是“所有项目都必须使用”的答案。它只是:现代 Python 网络开发中,一个非常优秀且现实的选择。原创 2026-05-26 18:47:14 · 453 阅读 · 0 评论 -
Windows git bash找不到conda命令:bash: conda: command not found(conda在安装时只配置了Windows CMD和PowerShell的环境变量)
Windows系统环境变量中的conda路径。conda在安装时通常只配置了Windows CMD和PowerShell的环境变量,而没有配置Git Bash的环境。根据你描述的问题,在Windows的Git Bash中执行conda命令提示找不到,只能用绝对路径运行,这是。按照这些步骤操作后,你应该就可以在Git Bash中正常使用conda命令了,而不需要每次都输入绝对路径。找到你的conda.sh文件路径,然后执行source命令。Git Bash是一个独立的shell环境,它。文件中即可永久生效。原创 2026-05-23 19:14:42 · 445 阅读 · 0 评论 -
Python Pydantic介绍(数据校验、自动类型转换、结构化数据建模、序列化JSON、配置管理)pydantic-settings、核心BaseModel、字段约束Field()、FastAPI
Pydantic 是一个:基于 Python Type Hint 的数据校验与数据建模库Pydantic 官方网站Pydantic GitHub 仓库name: strage: intage="18"有时候:类型正确 ≠ 数据合法。你可能不允许。Pydantic 本质上是:Python 世界的数据契约系统(Data Contract System)类型定义数据校验数据解析JSON 序列化之中。FastAPIAI Agent配置管理微服务 API。原创 2026-05-17 01:38:03 · 1851 阅读 · 0 评论 -
连接池(Connection Pool)介绍(一组可复用连接的缓存)网络RTT、asyncpg Pool、NAT超时、LB踢连接、适当连接池数量、池耗尽、连接泄漏、PgBouncer、ProxySQL
连接池(Connection Pool)本质上是:一组可复用连接的缓存。请求 -> 创建连接 -> 使用 -> 关闭连接请求 -> 从池中获取连接 -> 使用 -> 放回池中连接不会频繁创建与销毁,而是被重复利用。NAT 超时和LB 踢连接都是中间网络设备因空闲超时主动断连的行为,属于“非应用层主动断开”的隐性风险。的作用:通过限制连接最大存活时间,确保连接在 NAT/LB 超时前被应用层主动关闭并重建,从而避免因中间设备断连导致的通信故障。类比理解。原创 2026-05-14 23:48:24 · 357 阅读 · 0 评论 -
pytest-cov介绍(pytest插件,运行测试时统计代码覆盖率)Stmts总代码行数、HTML覆盖率报告--cov-report、htmlcov、XML报告、coverage.py、pragma
pytest-cov是pytest的一个插件。它的作用是:在运行 pytest 测试时,同时统计代码覆盖率。再集成进 pytest 生命周期哪些代码被执行哪些分支没执行哪些文件没有测试pytest-cov 是 Python 测试体系中最核心的覆盖率工具之一。测试覆盖统计漏测代码发现CI 质量门禁可视化 coverage 报告团队质量指标pytest = 测试执行器pytest-cov = 覆盖率插件coverage.py = 底层引擎这三者几乎是标准组合。原创 2026-05-14 18:43:54 · 406 阅读 · 0 评论 -
pip install -e “.[dev]含义(以开发模式安装当前目录的项目,并且额外安装项目中定义的dev分组依赖)可选依赖分组、可编辑模式
以开发模式安装当前目录的项目,并且额外安装项目中定义的dev分组依赖”语法含义当前目录的项目[dev]安装dev分组定义的额外依赖-e可编辑模式(开发时用)这样设计是为了让开发环境和生产环境的依赖清晰分离,避免不必要的包被安装到生产环境。原创 2026-05-14 03:53:21 · 214 阅读 · 0 评论 -
Python Tenacity库介绍(请求重试库、retry重试框架,当操作失败时,自动按策略重新执行)指数退避、随机抖动、RetryError、Retrying库
Tenacity 是一个:“通用 Python 重试框架(Retrying Library)”它的核心目标:当操作失败时,自动按策略重新执行。Tenacity 是 Python 世界最优秀的重试库之一。网络抖动API 限流瞬时故障服务雪崩重试风暴等生产环境中的核心问题。微服务AI 系统FastAPI 服务MQ 消费系统云原生平台那么:Tenacity 几乎是必备组件。原创 2026-05-12 02:28:34 · 482 阅读 · 0 评论 -
Boto3介绍(AWS官方推出的Python SDK for AWS,用于操作AWS各种云服务)Botocore、awscli、bucket存储桶、DynamoDB
Boto3 是 AWS 官方推出的:它让 Python 程序可以直接调用 AWS API。Boto3 官方文档AWS 官方网站Boto3 是 Python 世界操作 AWS 的标准方案。AWS 自动化云资源管理DevOpsServerless数据平台云原生开发可以理解为:“Python 与 AWS 云平台之间的桥梁”学习 AWS做云原生开发构建自动化平台编写运维脚本开发 Serverless 系统那么 Boto3 几乎是必学技能。原创 2026-05-12 01:27:34 · 492 阅读 · 0 评论 -
aio-pika介绍(基于asyncio的Python异步消息队列客户端,用于操作RabbitMQ,并实现对AMQP协议支持)
aio-pika是一个基于 asyncio 的 Python 异步消息队列客户端,用于操作 RabbitMQ,并实现对 AMQP 协议的支持。👉 简单来说:aio-pika = RabbitMQ 的“异步版 Python 客户端”aio-pika 是 Python 异步生态中操作 RabbitMQ 的优秀选择:✔ 原生 asyncio 支持✔ 高性能、高并发✔ API 现代易用✔ 支持自动重连与可靠投递。原创 2026-05-01 18:54:01 · 664 阅读 · 0 评论 -
Python asyncpg库介绍(基于Python asyncio的PostgreSQL数据库驱动)连接池、SQLAlchemy
asyncpg是一个基于 Pythonasyncio🚀 极致性能(通常比 psycopg2 快 2~5 倍)⚡ 原生异步(非线程池模拟)🧠 高效协议实现(直接实现 PostgreSQL 二进制协议)🔒 类型安全(自动映射 PostgreSQL 类型)它不是简单的 ORM,而是一个更底层、更高效的数据库访问工具。高并发 API 服务(如 FastAPI)微服务架构实时系统(如消息处理)数据密集型应用简单脚本低并发后台任务asyncpg 的核心价值可以归纳为三点:🚀 高性能。原创 2026-05-01 15:48:06 · 596 阅读 · 0 评论 -
Celery介绍(基于Python实现的分布式异步任务队列,用于处理耗时任务或后台作业)redis、异步队列、依赖中间件、依赖Broker、Flower工具、apply_async()
Celery是一个基于 Python 实现的分布式异步任务队列,用于处理耗时任务或后台作业。支持异步执行支持任务调度(定时任务)支持分布式扩展支持多种消息中间件(Broker)支持任务结果存储(Backend)一句话总结:Celery = 任务生产者 + 消息队列 + Worker 执行器高并发 Web 系统微服务架构数据处理平台如果你的系统中存在大量耗时操作或需要解耦的任务,引入 Celery 往往能显著提升系统性能与可维护性。原创 2026-04-30 16:10:17 · 938 阅读 · 0 评论 -
为什么Node.js不需要虚拟环境?与Python对比(Python虚拟环境、Node.js虚拟环境、NVM:Node Version Manager、Python Poetry、pnpm)
方面PythonNode.js设计哲学显式优于隐式约定优于配置依赖隔离通过虚拟环境手动创建通过node_modules自动实现运行时隔离✅ 隔离解释器❌ 不隔离运行时学习曲线需要理解虚拟环境概念开箱即用,更简单。原创 2026-04-08 13:21:18 · 560 阅读 · 0 评论 -
用pip install -e .开发Python包时,Python项目目录结构(项目结构)(可编辑安装editable install)
(PEP 660),行为更清晰,也便于其它工具(Ruff、MyPy、CI)统一读配置。,而是在那里放一个指向你项目根目录的链接(或等价机制)。,已安装的包就会用到最新代码。适合库、框架和需要被其它项目。其它后端(如 Hatch、Flit)也有各自的。pip 会在该目录里找安装说明(通常是。现在更推荐 pyproject.toml。用 pyproject.toml。可编辑安装的标准做法正在统一到。原创 2026-03-27 01:18:39 · 472 阅读 · 0 评论 -
Python __wrapped__介绍(函数属性,用于指向被装饰前的原始函数)functools.wraps、函数签名检查inspect模块、多层装饰器链
保留函数原始引用支持 introspection(自省)让工具链正常工作提升调试体验是装饰器世界中的“回溯指针”。原创 2026-03-19 14:26:10 · 371 阅读 · 0 评论 -
Python Mapping类型介绍(Mapping抽象接口、Mapping接口、__getitem__、__iter__、defaultdict、OrderedDict、ChainMap)
Mapping 类型是 Python 中最核心的数据结构之一,其代表dict以高效的哈希表实现提供了快速的数据访问能力。通过标准库中的扩展类型(如ChainMap等),可以灵活应对不同应用场景。掌握 Mapping 的使用不仅有助于写出更高效的代码,也能提升程序的结构化和可维护性。原创 2026-03-19 10:18:10 · 444 阅读 · 0 评论 -
Python typing Final(类型限定符type qualifier,用于告诉类型检查器:这个变量或属性不应该被重新赋值或被子类覆盖)声明常量、防止子类重写、全大写、实例属性
Final是 Python 类型系统中的一个类型限定符(type qualifier),用于告诉类型检查器:这个变量或属性不应该被重新赋值或被子类覆盖。它最早在PEP 591中被提出,并在Python 3.8中正式加入typing模块。Final不会在运行时强制限制它只对类型检查工具(例如mypypyright)生效应该只赋值一次之后不应该再修改Final虽然只是 Python 类型系统中的一个小特性,但在提高代码可维护性和可读性方面非常有价值。Final用于声明不可重新赋值的变量可以防止。原创 2026-03-16 14:22:02 · 428 阅读 · 0 评论 -
# noqa: BLE001介绍(代码检查lint抑制注释,用于告诉静态检查工具忽略这一行的某个特定规则。通常出现在Python代码里,用于配合Ruff或Flake8这类linter)
我知道这里捕获 Exception,但这是有意设计的。表示这一行即使违反某些 lint 规则,也不要报错。它通常出现在 Python 代码里,用于配合。(或 Ruff 兼容规则)中的一个规则编号。会捕获几乎所有异常,可能隐藏真正的问题。不符合 lint 规则,但。(不要对这行做质量检查)。它只是给代码质量工具看的。,用于告诉静态检查工具。这类 linter。)的 lint 警告。原创 2026-03-15 14:33:07 · 267 阅读 · 0 评论 -
Python typing类型标注的TypeVar和Generic介绍(泛型类型注解,将返回类型与传入类型相关联)类型变量、类型占位符、泛型函数、泛型类、泛型接口、bound、constraints
TypeVar声明一个“将来会被具体类型替换掉的变量”。T是一个类型变量,它本身不是一个实际的类型,但可以在函数 / 类里使用,表达“泛型”的概念。TypeVar:类型变量,是“类型的占位符”(比如TModelT:给类/接口挂上这些类型变量,使其变成“泛型类”。函数里用T:表达“输入和输出是同一类型,但这个类型暂时不指定”。类里用Generic[T]:表达“这个类是模板,未来会被具体类型实例化成XXX[int]等”。搭配bound:可以表达“必须是子类”或“只允许几种具体类型”。原创 2026-03-10 03:02:04 · 425 阅读 · 0 评论 -
Python相对路径导包弊端(相对路径导入、绝对路径导包、绝对路径导入、相对导入、绝对导入、相对导包、绝对导包)
相对导入就可能直接炸,因为此时模块的“包上下文”变了(或变成了脚本)。当目录层级多了,一眼看去全是点和点,很难马上搞清楚关系。绝对导入在这方面也会踩坑,但在“规范包运行方式”(项目大了之后,这种“有时候不好用”的体验会被放大。但你很可能忘了改,直到运行到这个模块才发现。这个用法其实是非常常见、也挺合理的。问题,而不是“相对导入=坏”。搬到别的子包里,原来的。哪边引用哪边,一清二楚。原创 2026-03-10 02:03:12 · 442 阅读 · 0 评论 -
Python项目改成绝对路径导入后,只能从项目根目录运行了吗?(否,可将项目根目录加入PYTHONPATH环境变量,也可用pip install -e .把项目装成包)没有包名补全功能、绝对路径导包
建议用方案 B,规范成包,然后用 alias 或脚本解决“命令太长”的问题。这样既规范,又不被“必须从根目录跑”绑死,只是当前没安装时确实要在能看到。,不是文件路径,所以 Bash 默认不会给你补全。Python 的“包搜索路径”里。如果以后想随处运行,就把项目用。,使用的是绝对路径导入其他包。这时 Python 看见。** 这种方式跑了。就行了,比补全包名还快。保持你习惯的命令:在。开头的绝对包名,而用。原创 2026-03-10 01:55:33 · 370 阅读 · 0 评论 -
Python列表(List)和元组(Tuple)区别
对比项列表 List元组 Tuple符号[]()是否可变可变不可变性能较慢较快内存占用较大较小使用场景动态数据固定数据列表用于可变数据,元组用于不可变数据。在Python编程中,选择列表还是元组并不仅仅是语法问题,而是设计问题。当数据需要频繁修改时,列表是最佳选择;而当数据需要保持稳定、不被修改时,元组则更安全、更高效。理解两者的区别,可以帮助开发者写出更清晰、更高效、更安全的 Python 代码。原创 2026-03-10 00:36:08 · 696 阅读 · 0 评论 -
配置管理中的默认值:是便利还是隐患?(显式优于隐式原则,约定优于配置原则,分层策略(配置分类原则))
区分必需与可选:关键配置强制要求,通用配置提供默认值环境感知:不同环境采用不同的验证策略显式验证:即使有默认值,也要在关键路径验证文档先行:清晰标注哪些是必需配置,哪些有默认值配置管理是一个需要平衡的艺术:既要保证系统的健壮性和开发效率,又要避免配置错误导致的隐患。通过分层策略和环境感知验证,我们可以在便利性和可靠性之间找到最佳平衡点。好的配置系统应该让正确的事情容易做,错误的事情难以发生。原创 2026-03-09 03:38:53 · 438 阅读 · 0 评论 -
Python Dataclass不能像普通类那样在__init__中设置默认值(field()函数、default_factory)
Dataclass 的字段默认值必须在类定义时写在字段声明处,不能放在__init__里。Dataclass 不能像普通类那样在__init__中设置默认值默认值必须在类定义时写在字段声明处对于可变对象(列表、字典等),必须用来避免共享问题这是 dataclass 的设计特性,不是可选项如果要用普通类的写法,需要去掉@dataclass装饰器,手动写__init__,但会失去 dataclass 自动生成__repr____eq__等方法的便利。原创 2026-03-09 03:32:15 · 462 阅读 · 0 评论 -
Python数据类@dataclasses.field()函数(可变对象(列表、字典、集合等),不要使用default(类变量共享问题),应使用default_factory可变默认值工厂函数)类属性
field()函数是模块中一个强大而灵活的工具,它解决了可变对象默认值共享的问题。✅可变对象→ 使用✅不可变对象→ 可以使用default或✅复杂初始化→ 使用命名函数作为工厂❌不要对可变对象使用default❌不要忘记需要可调用对象掌握field()函数,让你的数据类更加健壮和可靠!原创 2026-03-09 03:26:58 · 562 阅读 · 0 评论 -
安装Miniconda安装(Windows)、conda虚拟环境创建、conda虚拟环境激活
【代码】安装Miniconda安装(Windows)原创 2026-03-06 16:14:02 · 742 阅读 · 0 评论 -
新版Python安装记录(Python3.14)Python Windows
ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ原创 2026-03-06 14:32:15 · 379 阅读 · 0 评论 -
Python三点作用(Python...、Python ...、Ellipsis对象、Python省略号、三点语法、类型提示:表示函数参数任意、类型提示:可变长度tuple、NumPy:多维数组索引)
... . .EllipsisEllipsis是 Python 的一个内置常量对象。print(...)Ellipsis...是Ellipsis的语法糖它是 Python 内置类型ellipsis的唯一实例...(Ellipsis)是 Python 中一个不常见但非常有用的语法元素,主要用途包括:1️⃣代码占位符def foo():...2️⃣类型提示中的可变长度 tuple3️⃣函数类型提示4️⃣NumPy 高维数组索引虽然在日常 Python 开发中出现频率不算很高,但在阅读。原创 2026-03-06 01:02:56 · 564 阅读 · 0 评论 -
Python日志模块logger_handler.py(通用日志模块、小项目勉强够用、满分100给60分)Python logging(log模块、logger模块)
如果你想自己控制文件名或子目录,可以传入log_file__name__,log_file="logs/rag/rag_service.log", # 相对路径会自动转成基于项目根目录的绝对路径若传入的是相对路径,会通过自动转成基于项目根目录的绝对路径。若传入的是绝对路径,则直接使用。在当前项目(以及结构类似的项目)中很适合作为“统一日志入口需要时再调整file_level/ 轮转策略。作为跨项目复用的通用模块当前版本已经有不错的基础;原创 2026-03-05 02:46:24 · 399 阅读 · 0 评论 -
Python导包的坑(__name__、python -m)(相对导入必须有“父包”、)(relative import、parent package、python模块、python包)
用一句话把本文的核心串起来:在工程化的 Python 项目里,只要你使用包结构 + 相对导入,就要习惯用 python -m 包.子包.模块的方式来运行和调试;把当成“只适合小脚本”的方案,就能避开 80% 的导包坑。原创 2026-03-05 01:55:22 · 371 阅读 · 0 评论 -
Python __pycache__介绍(.pyc文件、字节码缓存文件)批量删除__pycache__目录命令
是 Python 自动生成的“加速缓存目录”,里面的.pyc是根据.py源码编译出来的字节码。它随时可以删,Python 会自动重建;不用提交到 Git,也不用手动修改,只要确保.gitignore里把它忽略就行。理解了这一点,你在看到它在就随它在,不想要就删掉,真正要维护的永远是.py源码本身。原创 2026-03-04 21:01:40 · 682 阅读 · 0 评论 -
Python运行方式:python xxx.py和python -m package.module区别(ImportError、相对导入须在包环境下才能工作、直接运行脚本独立脚本)入口模块包内模块父包
把文件当成孤立脚本,没有“父包”,相对导入会失效。:把文件当成包内模块来运行,有完整的包上下文,相对导入可以正常工作。对于像你现在这样的工程化项目,只要是“在包里的模块”,推荐统一用python -m 包名.模块名的方式来运行和调试,既不容易踩导入坑,又更符合未来部署、打包的最佳实践。原创 2026-03-04 20:47:48 · 401 阅读 · 0 评论 -
Python __name__介绍(魔术变量dunder variable:double underscore)模块名(__name__ 取值发生在函数定义时,而不是调用时)__main__
函数定义类定义全局变量可执行测试代码通过可复用逻辑(API)运行入口逻辑(CLI / 测试)进行解耦。__name__的核心作用可以概括为:用于判断当前模块是否作为程序入口执行。它解决的是一个非常关键的软件工程问题:如何让同一个 Python 文件既能作为模块被导入,又能独立运行。理解这一点,你就真正理解了 Python 模块执行模型的基础。函数默认参数表达式在函数定义时执行执行上下文是函数所在模块的全局命名空间结果会被缓存到这意味着默认参数不会在调用时重新计算。场景默认参数。原创 2026-03-04 16:26:54 · 402 阅读 · 0 评论 -
Python !r介绍(格式化字符串f-string转换标记,用于开发阶段调试打印(加上引号、特殊字符转义),使显示清晰)__repr__(会先将值传给repr(),再做格式化)!s、!a、str()
比如运营、产品也会看日志,这时引号、转义符号太多会显得“乱”,可以用普通的。虽然现在大家更多用 f-string,但老代码中。打印变量状态,避免花时间肉眼推测。背后真正起作用的是对象的。和 f-string),时,把变量打印得更清晰。写一些辅助函数时,直接用。的结果参与后续格式化。在 Python 的。原创 2026-03-04 02:51:38 · 428 阅读 · 0 评论 -
Python Streamlit session_state介绍(与用户会话绑定的状态容器,作用域:单个用户session)(全量重跑rerun、key自动绑定、与cache_data区别)持久化变量
解决的是:在 Streamlit 的 rerun 模型下,如何保持用户交互状态。会话级可变字典与 widget 自动双向绑定支持回调更新每个用户独立理解了它,你就真正掌握了 Streamlit 的状态管理核心。原创 2026-02-26 01:24:26 · 1106 阅读 · 0 评论 -
Python私有方法介绍(类私有方法、私有函数、Python__、双下划线、Python __、Python单下划线、内部方法、名称重整机制Name Mangling名称修饰、防止子类覆盖)
method()—— 约定俗成__method()—— 名称重整机制没有真正强制 private核心理念是:通过约定而不是限制来管理代码结构。如果你在工作项目中开发大型系统,合理使用单下划线 + 清晰的文档说明,往往比滥用双下划线更优雅。原创 2026-02-23 23:13:42 · 937 阅读 · 0 评论 -
Python Streamlit介绍(开源Python Web应用框架,快速将Python脚本转换成交互式Web应用,适合数据科学和机器学习项目快速展示)
模型做好了,如何优雅地展示给别人用?传统的 Web 开发需要前后端分离、写大量 HTML/CSS/JS,对很多数据分析师来说门槛较高。这时候,Streamlit就成了一款非常值得推荐的工具。数据科学家机器学习工程师数据分析师设计,用于快速将 Python 脚本转换成交互式 Web 应用。它的核心理念非常简单:用纯 Python 写 Web 应用。你无需掌握前端技术,也无需了解 Web 框架原理,只需要会写 Python。Streamlit 的核心价值是:极低门槛 + 极高效率。原创 2026-02-20 13:36:34 · 1487 阅读 · 0 评论 -
Python callable接口介绍(可调用对象)(__call__方法、Python回调函数、Python Callback、Python装饰器、Python Decorator、类型提示)
callablecallable是Python“一切皆对象”哲学的体现。理解它不仅能让你写出更优雅的代码(如装饰器、状态机),还能避免常见的类型混淆陷阱。下次写函数式代码时,不妨试试用__call__实现“有状态的函数”——你会发现Python的灵活性远超想象!原创 2026-02-15 01:38:06 · 553 阅读 · 0 评论 -
Python self介绍(方法与实例之间的桥梁)(与Java this对比)(self可以改名,但不推荐)Python实例方法、Python类方法、Python静态方法
self。原创 2026-02-13 16:56:23 · 1895 阅读 · 0 评论 -
Python Any类型注解(Ptyhon typing.Any、Python类型提示、万能类型提示、typing模块、Any陷阱、# type: ignore)
AnyAny是Python类型提示生态中的重要工具,但它绝不是“类型提示的终点”。真正的类型安全,源于对数据流动的清晰理解。当你在代码中看到Any时,问问自己:“这个类型是否真的无法确定?还是我还没想清楚?用好Any,你能让类型检查器真正成为代码质量的守护者,而不是被它“绕过”的借口。📌小贴士:在项目中搜索或Any,能快速定位需要优化的代码。(别让 Any 成为你的“类型提示拖延症”)延伸阅读Python官方文档:Typing Modulemypy 官方文档:Any Type。原创 2026-02-13 16:09:51 · 1223 阅读 · 0 评论
分享