- 博客(1294)
- 收藏
- 关注
原创 应对 Python Asyncio 中的 CPU 密集型任务:策略与实战解析
本文探讨了在Python Asyncio中处理CPU密集型任务的策略。由于Asyncio专注于非阻塞I/O,直接执行CPU密集型任务会导致事件循环阻塞。文章提出了四种解决方案:1)使用线程池(asyncio.to_thread())将任务移至独立线程;2)利用进程池(ProcessPoolExecutor)实现多进程并行;3)采用优化库如NumPy加速计算;4)将大任务切片为小块交替执行。通过代码示例展示了线程池计算阶乘、进程池求和、NumPy加速运算等方法,并提供了图像处理的实践案例。最后强调保持事件循环
2025-07-28 06:45:16
379
原创 解析 Python 的异步魔法:深入理解 `async` 和 `await`
本文深入解析 Python 中的 async 和 await 关键字,揭示异步编程的核心机制。async 将函数转换为协程,使其可被事件循环调度;await 则暂停协程执行,等待异步操作完成。文章通过代码示例对比普通函数与协程函数的差异,阐述协程对象的惰性运行特性,并详细讲解 await 的工作原理及其支持的 awaitable 对象。此外,还展示了如何利用 asyncio 进行任务调度和超时控制,以及异步爬虫等实战应用场景。这些知识能帮助开发者高效处理 I/O 密集型任务,优化程序性能。
2025-07-28 06:43:26
249
原创 探索 Python Asyncio 的核心:事件循环、Task、Future 与 Coroutine
本文深入解析 Python asyncio 异步编程框架的核心组件。首先介绍了事件循环(Event Loop)的工作机制,它是asyncio的调度中心,负责管理任务执行流程。其次详细讲解了Task和Future:Task作为协程的封装容器参与事件循环调度,Future则用于表示异步操作的结果。文章还阐述了协程(Coroutine)的基础作用,以及三者的层级关系:协程定义逻辑→Task包装调度→Future表示结果。最后通过高并发爬虫案例展示了asyncio的实际应用价值,并探讨了异步编程的优化方向。
2025-07-28 06:41:16
1
原创 解密 Python 并发编程:Threading, Multiprocessing 与 Asyncio 深度对比
本文深入对比了Python三大并发编程工具:Threading、Multiprocessing和Asyncio。Threading适合I/O密集型任务但受GIL限制;Multiprocessing能真正并行处理CPU密集型任务但资源消耗大;Asyncio专为高效I/O设计但学习曲线较陡。文章通过代码示例、对比表格和实战场景分析,帮助开发者根据任务类型(计算密集/I/O密集)选择合适工具,并讨论了各自的优缺点及适用场景。最后邀请读者分享并发编程经验和应对GIL限制的见解。
2025-07-28 06:32:26
1
原创 深入解读 Python 字节码:语言深处的效率与优化之旅
Python 是一门易学易用、功能强大的编程语言,无论是初学者还是资深开发者都被它简洁优雅的语法所吸引。然而,Python 的灵活性背后隐藏着一个高效的执行机制——字节码 (Bytecode)。理解字节码可以帮助开发者更好地优化代码性能、调试问题,甚至深入研究 Python 的执行机制。
2025-07-26 05:21:42
118
原创 深入浅出 Python 上下文管理协议:资源安全与代码优雅的秘密
Python 的上下文管理协议(with 语句与 __enter__/__exit__ 方法)是资源管理的核心机制,能自动处理资源初始化和释放,确保代码安全优雅。文章从文件操作示例切入,解析了上下文管理器的工作原理,展示了自定义实现和 contextlib 简化方案,并探讨了在数据库、线程锁等场景的应用。最后提出了异常处理、资源安全等最佳实践,指出上下文管理器在分布式环境中的发展前景。该协议以简洁语法解决了资源泄漏难题,体现了 Python 对代码质量的追求。
2025-07-26 05:15:42
178
原创 IDM下载失败排查:解决常见错误,确保稳定高速下载
Internet Download Manager(IDM)是一款功能强大的下载加速器,但用户在使用过程中可能会遇到下载失败、连接错误或文件损坏等问题。本文将介绍IDM常见下载错误的排查方法,帮助你快速解决问题,恢复稳定高速下载体验。
2025-07-25 09:26:13
745
原创 优化C盘空间,提升系统性能
本文分享了8种有效清理C盘空间的方法,包括删除临时文件、卸载不常用程序、清理浏览器缓存、移动用户文件、管理系统还原点、使用符号链接转移目录、优化虚拟内存设置以及定期备份项目文件。这些技巧可帮助程序员解决C盘空间不足问题,提升系统性能和开发效率。通过合理管理和定期维护,不仅能释放宝贵磁盘空间,还能确保开发工作的顺畅进行。
2025-07-25 08:22:23
1002
原创 《参数化装饰器的艺术:Python 编程中的高级技巧与实战指南》
本文系统讲解了Python参数化装饰器的高级用法,从基础概念到三层嵌套结构实现,通过日志记录、权限校验、时间限制等实战案例展示其应用价值。文章还介绍了组合装饰器、元信息保留等进阶技巧,并展望了装饰器与框架融合的未来趋势。作者提供了10个实用段落,覆盖从基础到项目实践的完整知识链,最后邀请读者分享装饰器使用经验和调试技巧。全文以技术深度结合实用建议,帮助开发者掌握这一Python编程利器。
2025-07-25 08:12:32
886
原创 《Python 里的真假之辨:深度解析 is 与 ==,与 CPython 的隐秘性能魔法》
本文深入解析Python中is与==的区别及CPython的内存优化机制。==比较值相等,is比较对象标识相同。CPython通过缓存小整数(-5到256)和符合标识符规则的短字符串来优化性能,减少内存分配和垃圾回收压力。文章通过实例验证缓存机制,并给出字符串intern优化的实际应用场景,如自然语言处理、词法分析等。同时指出常见误区,强调is仅适用于特定场景。最后讨论缓存机制的局限性,并邀请读者分享使用经验。理解这些底层机制有助于编写更高效的Python代码。
2025-07-25 08:08:52
1005
原创 《字典与集合的魔法:深入探索 CPython 的哈希表实现机制》
这篇文章深入解析了Python中字典(dict)和集合(set)的底层实现机制,揭示它们高效性能背后的哈希表原理。主要内容包括: 字典和集合在Python中的核心地位和基础特性 哈希表的工作原理和冲突解决策略 CPython中字典的具体实现结构(ma_keys、ma_values等) 集合与字典的异同点比较 平均O(1)时间复杂度背后的机制 CPython的优化策略(扩容、共享key等) 开发者的实用建议和注意事项 进阶应用场景和未来研究方向 文章通过具体示例和对比表格,帮助读者深入理解这些核心数据结构.
2025-07-25 08:05:13
806
原创 《Python 内存机制解密:深入理解垃圾回收与循环引用处理》
摘要: Python 的自动内存管理依赖引用计数和垃圾回收(GC)机制。引用计数虽能快速回收对象,但无法处理循环引用(如相互引用的对象)。Python 的 GC 采用分代回收策略,按对象存活时间分代处理,并通过 gc.collect() 主动清理不可达的循环引用。优化建议包括:使用 weakref 弱引用、手动断开引用链、利用 objgraph 分析内存泄漏。框架(如 Django)通过信号和弱引用避免循环引用。理解这些机制有助于编写高效、稳定的 Python 代码。
2025-07-24 07:37:32
848
原创 《Python 异步之光:全面理解 yield、yield from 与生成器协程的奥秘》
本文深入探讨了Python中yield和yield from关键字的原理与应用,揭示了它们如何构建生成器和协程。文章首先介绍了yield创建惰性迭代器的优势,包括内存节省和可读性提升;然后解析了yield from作为生成器"接力棒"的作用,简化了多层生成器组合;最后对比了生成器协程与现代async/await语法,提供了实际应用场景中的最佳实践建议。通过爬虫数据处理、文本处理管道等实例,展示了这些机制如何优化程序性能与可维护性,并展望了它们它们在未来Python异步生态中的发展前景。
2025-07-24 07:12:11
778
原创 《深入掌控类的本质:揭秘 Python 元类与高级对象模型》
这篇文章深入探讨了Python元类的核心概念与应用价值。首先揭示了"类也是对象"的本质,指出元类是创建类的工厂。文章通过代码示例展示了默认元类type的工作原理,并详细解析了自定义元类的创建流程(__new__方法)。重点介绍了元类在框架设计(如Django ORM)、接口约束(ABC抽象基类)等场景的实际应用,对比分析了元类与装饰器、继承的适用场景差异。最后提出元类在DSL封装、代码质量守护等领域的未来潜力,强调其作为Python高级特性需要谨慎使用,适用于框架级开发需求。
2025-07-24 07:09:26
951
原创 《深入理解 Python 的对象构造机制:__new__ 与 __init__ 的本质区别与实战应用》
本文深入解析Python对象构造机制,重点对比__new__和__init__两个关键方法。__new__负责对象创建,是类方法,必须返回实例;__init__负责对象初始化,是实例方法。文章通过三个典型场景展示__new__的独特价值:创建不可变对象、实现单例模式和动态选择实例类型。还介绍了__new__的高级技巧、调试实践以及在现代框架中的应用。理解这两个方法的本质区别,能帮助开发者更好地掌握Python面向对象编程,在构建不可变类型、元类编程等高级场景中发挥关键作用。
2025-07-22 07:46:29
1014
原创 解密 Python 的 MRO:C3 线性化如何优雅解决多重继承的菱形难题》
本文深入解析 Python 中 C3 线性化算法如何优雅处理多重继承问题。通过菱形继承案例,展示 MRO(方法解析顺序)的工作原理,解释 C3 算法的核心规则:子类优先、声明顺序、单次出现和局部一致性。文章包含丰富的代码示例与继承结构图示,演示 super()函数如何依据 MRO 实现链式调用,并提供调试工具和最佳实践建议。从 Python 2 到 3 的继承机制演进,到现代框架中的多重继承应用,全面剖析这一面向对象编程的核心机制,帮助开发者构建更健壮的类结构。
2025-07-22 07:44:02
918
原创 《深入理解 Python 的 import 机制:路径解析、缓存优化与模块导入策略全解析》
本文深入解析Python的import机制,从模块导入流程到路径搜索原理,全面讲解sys.path、.pyc缓存、PYTHONPATH等核心概念。内容包括:模块搜索步骤、路径动态修改方法、相对/绝对导入的适用场景与最佳实践,以及importlib动态导入技巧。提供了项目结构组织建议,分析常见导入问题的解决方案,并展望Python模块系统的未来趋势。本文适合所有Python开发者,帮助优化模块管理、提升代码可维护性,特别适合解决"模块找不到"等常见问题。
2025-07-22 07:42:49
1164
原创 《深入理解 Python 的 import 机制:路径解析、缓存优化与模块导入策略全解析》
本文深入解析Python的import机制,从模块导入流程到路径搜索原理,全面讲解sys.path、.pyc缓存、PYTHONPATH等核心概念。内容包括:模块搜索步骤、路径动态修改方法、相对/绝对导入的适用场景与最佳实践,以及importlib动态导入技巧。提供了项目结构组织建议,分析常见导入问题的解决方案,并展望Python模块系统的未来趋势。本文适合所有Python开发者,帮助优化模块管理、提升代码可维护性,特别适合解决"模块找不到"等常见问题。
2025-07-22 07:36:31
556
原创 《解密 Python 模块导入机制:import 背后的运作逻辑与最佳实践》
摘要: Python的import机制是模块化开发的核心,其运作流程包括检查sys.modules缓存、搜索sys.path路径、执行模块代码并缓存。关键要素包括.pyc字节码缓存加速加载、PYTHONPATH环境变量扩展搜索路径,以及相对/绝对导入的适用场景。最佳实践推荐使用绝对导入、虚拟环境管理依赖,并避免直接修改sys.path。动态导入可通过importlib实现,模块重载则适用于开发调试。未来PEP提案将持续优化模块管理,理解这些机制能帮助开发者构建更高效的Python项目。
2025-07-21 07:38:49
766
原创 《掌控属性魔法:深入解析 Python 描述符协议与高阶应用》
本文深入解析Python描述符协议及其高阶应用。作为Python对象模型的底层机制,描述符通过实现__get__、__set__和__delete__方法,为属性访问控制提供强大支持。文章揭示了@property、@classmethod等装饰器的描述符本质,并通过数据验证器案例展示其实际价值。还探讨了结合元类动态注入描述符的高级技巧,对比了描述符相较传统方法的优势,如更好的封装性、复用性和维护性。最后提出描述符在数据驱动编程中的发展趋势,并邀请读者讨论应用场景和未来走向。
2025-07-21 07:36:21
941
原创 《精雕细琢 Python 对象:深入理解 __slots__ 的性能魔法与实战应用》
这篇文章深入解析了 Python 中的 __slots__ 特性,揭示了它在优化内存和性能方面的魔法。通过对比分析,文章展示了 __slots__ 如何通过限制实例属性来减少内存占用(可达40%)和提升访问速度,同时详细说明了其使用限制,包括禁止动态添加属性、不支持多继承组合等问题。作者还提供了实用场景建议(如大规模数据处理)和最佳实践,并探讨了与属性描述符的高级组合用法。最后通过决策表格帮助开发者权衡是否采用该特性,并邀请读者分享实践经验。全文兼顾技术深度与实用性,是Python高级开发的优质指南。
2025-07-21 07:34:06
1254
原创 《突破 GIL 限制:Python 多线程的真相与最佳实践》
摘要: Python的全局解释器锁(GIL)限制了多线程在CPU密集型任务中的并行能力,但其设计初衷是保证线程安全并简化解释器实现。多线程在IO密集型任务(如网络请求、文件操作)中仍具优势,能显著提升效率。应对GIL的策略包括:使用多进程(multiprocessing)实现真正并行、利用C扩展模块绕过GIL、采用异步编程(asyncio)优化IO并发,或尝试PyPy等替代解释器。尽管社区讨论过移除GIL,但其与CPython深度耦合,未来更可能通过优化库和机制缓解影响。
2025-07-20 07:49:34
901
原创 《代码如诗:打造清晰、可读、可维护的 Python 项目指南》
《代码如诗:打造清晰、可读、可维护的 Python 项目指南》是一份关于编写优雅 Python 代码的实用指南。文章从基础规范(PEP 8)、命名技巧、函数设计到项目架构,系统性地分享了提升代码质量的实践方法。重点包括:遵循单一职责原则设计函数、编写有效注释与文档、模块化项目结构,以及使用工具(如 black、flake8)保持代码一致性。文章强调"代码即沟通"的理念,提倡将可读性和维护性作为编码的核心追求,并附赠了PEP8规范等实用资源,帮助开发者写出如诗般优雅的Python代码。
2025-07-20 07:42:35
1028
原创 《Python 实时通信全解:掌握 WebSocket 技术与 HTTP 的本质区别》
本文深入解析Python中WebSocket与HTTP的核心区别,展示WebSocket在实时通信中的优势(双向长连接、高效传输)。通过websockets和FastAPI示例演示如何构建聊天服务器和推送系统,并给出连接维护、安全认证等优化建议。文章指出WebSocket正取代轮询技术,与GraphQL、物联网和Serverless结合成为趋势,强调Python异步生态对其的支持。最后邀请读者分享WebSocket的应用场景与挑战。
2025-07-19 07:41:05
1076
1
原创 《深入 Python Web 安全机制:从用户认证到授权控制的实战指南》
《深入 Python Web 安全机制:从用户认证到授权控制的实战指南》
2025-07-19 07:38:45
549
原创 《构建可扩展的 Python RESTful API:设计原则与实战指南》
本文介绍了使用Python构建可扩展RESTful API的设计原则与实战指南。首先阐述了REST架构的核心原则,包括资源导向、HTTP方法使用、无状态通信等。然后详细讲解了API设计最佳实践,如资源命名规范、状态码语义、错误响应结构等。文章重点演示了如何使用FastAPI框架进行开发,包括项目结构设计、数据库模型定义、数据验证、CRUD操作封装以及路由定义等核心环节。最后探讨了身份认证、性能优化等进阶技巧,并展望了GraphQL、Serverless等新趋势。
2025-07-18 07:31:43
647
原创 《Python Web 框架深度剖析:Django、Flask 与 FastAPI 的选择之道》
摘要: 本文深入对比了Python三大主流Web框架——Django、Flask和FastAPI的核心特性与适用场景。Django作为全栈框架,适合快速构建功能完善的中大型应用;Flask以轻量灵活著称,适合微服务和定制化开发;FastAPI凭借异步支持和自动文档生成,成为高性能API开发的首选。文章通过代码示例、特性对比表和实践建议,分析了各框架的优缺点,并探讨了Python Web开发的未来趋势(如异步通信、Serverless架构)。开发者可根据项目规模、性能需求和团队技术栈,选择最匹配的解决方案。
2025-07-18 07:29:42
1226
原创 《Python 应用容器化全攻略:Docker 原理解析与实战部署指南》
本文全面介绍了Python项目使用Docker容器化的完整流程。首先阐述了Docker解决环境一致性、快速部署等核心价值,详细解析了Docker镜像、容器等基础概念。文章以Flask应用为例,展示了从项目准备到Dockerfile编写(包含多阶段构建等进阶技巧)的全过程,并提供了构建、运行容器的具体命令。还介绍了.dockerignore、Docker Compose等最佳实践,以及部署到Heroku、AWS等云平台的方法。
2025-07-17 05:33:16
1148
原创 《Python 项目 CI/CD 实战指南:从零构建自动化部署流水线》
《Python项目CI/CD实战指南》摘要:本文详细介绍了Python项目如何构建自动化CI/CD流水线,从基础概念到实战部署。文章首先阐述了CI/CD对Python项目的价值(自动化测试、快速部署等),然后以Flask应用为例,演示了GitHub Actions配置流程(包含测试、构建和Heroku部署)。最佳实践部分涵盖了编码规范、测试覆盖、Docker优化等内容,并展望了Python与DevOps融合的未来趋势。随文附有完整代码示例和配置模板,帮助开发者快速实现从代码提交到生产部署的自动化闭环。
2025-07-17 05:30:28
1061
原创 Python 测试驱动开发(TDD)全流程实战指南:从理念到落地
《Python测试驱动开发(TDD)实战指南》摘要: 本文系统介绍了测试驱动开发(TDD)在Python项目中的实践方法。首先阐述TDD"红-绿-重构"的核心循环理念,强调其需求驱动、安全重构等价值。随后详细介绍Python生态测试工具链,推荐pytest+coverage组合。通过构建计算器模块的完整示例,演示从编写失败测试到最小实现再到重构的完整流程。文章还提供测试命名规范、Fixture管理、Mock隔离等进阶技巧,并展示如何集成到CI/CD流水线中实现自动化测试。
2025-07-16 07:27:44
930
原创 Python 测试全景:单元测试、集成测试与端到端测试实战指南
Python测试全景摘要 本文全面介绍Python测试实践,涵盖单元测试、集成测试和端到端测试三大类型。测试金字塔理论指出:单元测试应作为基础(快速、易维护),集成测试验证模块协作,端到端测试确保系统整体功能。 Python主流测试框架包括: unittest(标准库) pytest(语法简洁、功能强大) nose(unittest扩展) hypothesis(属性测试)
2025-07-16 07:22:00
946
原创 Python 数据清洗与预处理全攻略:从入门实战到高效进阶
在数据驱动的时代,原始数据往往“脏乱差”:缺失值、重复项、数据类型错配、格式混乱……这些问题如果放任不管,模型训练准确性会大打折扣,业务决策也会走偏。本文将带你从基础工具入门,到大规模数据流的高效并行方案,结合丰富的 Python 代码示例与实践案例,帮助初学者快速上手,也为资深开发者提供深度优化思路,让你在数据清洗和预处理的道路上既有温度又有力量。
2025-07-16 06:07:16
681
原创 在并发数据库访问中如何选型锁机制:从悲观锁到分布式锁的实战指南
本文系统性地探讨了并发数据库访问中的锁机制选型策略。从基础理论出发,详细分析了悲观锁(如SELECT FOR UPDATE)和乐观锁(基于版本号/时间戳)的适用场景与实现方式,提供了Python/SQL示例。文章还深入解析了数据库内置锁与MVCC机制在不同数据库中的表现差异,并介绍了分布式环境下的锁解决方案(Redis、ZooKeeper等)。通过对比多种锁策略的优劣,帮助开发者在高并发场景下权衡性能与数据一致性,为复杂系统设计提供实用指导。
2025-07-16 06:04:06
1163
原创 掌握 Python 数据库事务:从概念到上下文管理器的实战指南
摘要 本文深入讲解Python数据库事务管理,从基础概念到高级实践。首先介绍事务的ACID原则(原子性、一致性、隔离性、持久性)及其重要性。随后探讨Python与数据库交互的三种方式:原生驱动、ORM工具和上下文管理器,重点展示如何用上下文管理器优雅管理事务。文章还对比了SQLAlchemy和Django ORM的事务实现方式,包括嵌套事务与保存点的使用。最后通过银行转账系统案例,演示如何确保数据一致性。全文代码示例丰富,适合各层次Python开发者学习健壮的数据库事务管理技术。
2025-07-08 06:49:03
767
原创 安全为先:如何在 Python 中安全处理数据库连接与敏感信息
摘要: 本文探讨Python中安全处理数据库连接与敏感信息的关键方法。针对硬编码凭证、明文存储等常见风险,提出了环境变量管理(python-dotenv)、上下文管理器、连接池(SQLAlchemy)、加密(hashlib/bcrypt)及参数化查询等解决方案,并通过用户管理系统案例演示安全实践。强调始终遵循最小权限原则和加密传输(SSL),为开发者构建安全可靠的数据库应用提供实用指南。
2025-07-08 06:43:16
1133
原创 解锁 Python ORM 的力量:SQLAlchemy 与 Django ORM 深度对比与实战指南
Python ORM工具SQLAlchemy和Django ORM深度对比:SQLAlchemy作为独立库提供高度灵活性和复杂查询支持,适合需要精细控制的中大型项目;Django ORM则与框架深度集成,语法简洁易用,适合快速Web开发。两者在模型定义、查询语法、数据库支持和性能优化上各有特色,开发者应根据项目需求选择:追求灵活性和控制力选SQLAlchemy,注重开发效率选Django ORM。
2025-07-08 06:38:19
100
原创 使用 Python 处理大型数据集:高效性能的实用策略
本文介绍了使用Python高效处理大型数据集的实用策略。首先探讨了Python作为大数据处理工具的优势,包括其简洁语法和丰富的生态系统。文章从基础数据结构入手,分析了列表、字典等结构的适用场景和内存问题。随后深入讲解了生成器、上下文管理器等提高内存效率的技术,以及利用多核CPU的并行处理和异步I/O优化网络请求的方法。重点介绍了NumPy、Pandas和Dask等专业库在大数据处理中的应用,并通过一个处理10GB交易数据的实战案例,展示了如何构建可扩展的数据处理管道。
2025-07-08 06:32:08
25
原创 高效处理大型数据集:Python 性能优化与实战指南
摘要:Python 高效处理大型数据集指南 本文系统介绍了使用 Python 处理大型数据集的技术方案。从基础数据结构选择(如优先使用元组而非列表)、生成器逐行读取文件以避免内存溢出,到高级技术如异步 I/O 和 Dask 并行计算。文章通过真实案例对比了 100GB 日志分析任务优化前后的处理方式:初始代码因全量加载导致内存崩溃,优化后采用分块处理、类型优化和 Dask 并行化,将内存占用从 80GB 降至可控范围,同时显著提升处理速度。
2025-07-06 06:08:13
706
原创 诊断与解决 Python 应用性能瓶颈:实用指南
本文系统介绍了如何诊断和解决Python应用性能瓶颈。首先强调使用cProfile、line_profiler等工具定位性能问题,并通过日志监控关键指标。针对不同类型的瓶颈,提供了针对性解决方案:CPU密集型问题通过算法优化和缓存处理;I/O密集型问题采用异步I/O和数据库优化;内存问题则利用生成器和高效数据结构。文中包含真实案例和代码示例,如斐波那契函数优化和异步爬虫实现,并展示了如何将20分钟的数据处理任务优化至3分钟。
2025-07-06 06:05:08
994
原创 解密 Python 内存管理:从原理到实战,教你彻底避免内存泄漏
摘要: 本文深入探讨 Python 内存管理机制,从引用计数、垃圾回收原理到实战技巧,帮助开发者避免内存泄漏。文章详细介绍了检测工具(如 tracemalloc、objgraph),并提供了优化策略:使用上下文管理器、弱引用、生成器,以及异步编程中的内存管理。通过代码示例和真实案例,读者将掌握如何高效管理内存,提升程序性能。适合所有 Python 开发者,从基础到进阶,全面解决内存问题。
2025-07-05 07:25:15
546
Apache Tomcat 安装与配置详解.zip
2025-03-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人