- 博客(197)
- 收藏
- 关注
原创 Python核心:从入门到实践的面向对象编程-6
摘要:Python特殊方法(双下划线方法)允许自定义类实现运算符重载,使其支持内置操作如加法、比较等。本章通过一个三维向量类示例展示了如何重载__add__、__mul__等方法实现向量运算,以及__str__、__eq__等方法实现字符串表示和比较。特殊方法还支持上下文管理(__enter__/__exit__)、索引访问(__getitem__)等特性,使自定义对象能像内置类型一样自然操作。
2026-01-14 09:17:14
787
原创 Python核心:从入门到实践的面向对象编程-5
本章介绍了Python类的高级特性,重点讲解了多态性这一核心概念。多态性允许不同对象对同一指令做出不同响应,例如不同动物发出不同叫声。文章通过两个代码示例展示了多态的实现:create_animal_class函数创建基础动物对象,demonstrate_polymorphism函数演示如何处理不同类型的动物实例并调用其特有方法。这种特性提高了代码的灵活性和可扩展性,使程序能够编写通用代码处理相关对象,而无需关心具体类型。
2026-01-14 09:16:52
658
原创 Python核心:从入门到实践的面向对象编程-4
摘要 本章介绍了面向对象设计中抽象基类和组合关系的应用。通过将Shape类改造为抽象基类,强制子类实现area方法,确保所有形状都能计算面积。Circle和Rectangle类作为具体实现,展示了多态性的应用。此外,文章演示了组合关系优于继承的设计理念,以Car类包含Engine类的实例来说明"has-a"关系的优势。代码示例包括参数验证、属性管理和异常处理,体现了健壮的程序设计思想。
2026-01-14 09:15:18
783
原创 Python核心:从入门到实践的面向对象编程-3
本章介绍了面向对象编程中的继承与多态概念。通过动物类层次结构的示例,展示了如何创建基类Animal定义通用属性和方法,并让Dog、Cat、Bird等子类继承这些特性。子类可以重写基类方法(如speak())、扩展基类方法(如get_info())以及添加特有方法(如fetch()、nap()等)。多态允许不同子类对象对同一方法调用产生不同行为,提高了代码的可扩展性和复用性。通过super()调用父类方法,实现了代码的高效组织和维护。
2026-01-13 17:09:09
624
原创 Python核心:从入门到实践的面向对象编程-2
文章摘要 本章探讨面向对象编程中的封装与信息隐藏概念。封装将对象数据与操作绑定,通过访问控制保护内部状态一致性。Python使用双下划线__前缀实现私有属性,如银行账户类中保护余额不被直接修改。更优雅的@property装饰器允许在属性访问时执行自定义逻辑,如汽车类中验证里程数不能减少。静态方法则用于组织与类相关但不依赖实例状态的函数。这些机制共同构建了安全可靠的面向对象设计,确保数据完整性和业务规则执行。
2026-01-13 17:08:30
666
原创 Python核心:从入门到实践的面向对象编程-1
本文介绍了面向对象编程(OOP)的基本思想,通过学生管理案例展示了从独立列表到对象封装的组织方式演变。核心概念包括: 对象:将数据(属性)和行为(方法)捆绑的独立单元(如具体的学生张三) 类:创建对象的蓝图模板(如Student类),定义共有的属性和方法 实例化:根据类创建具体对象的过程 文中通过Python代码示例展示了: 类定义语法 构造方法(init)的作用 实例属性和类属性的区别 方法的定义和使用 类型验证和错误处理 OOP的优势在于将相关数据和操作封装在一起,使代码更模块化、可维护性更强。这种思维
2026-01-13 17:07:56
467
原创 Python文件操作与异常处理实战:编写健壮的应用程序-6
本文介绍了一个简易日志分析器的Python实现项目,重点讲解了如何通过异常处理构建健壮的日志分析工具。项目分为三个核心环节:首先使用read_log_file()函数读取日志文件,处理文件不存在、权限和编码问题;然后通过parse_log_line()解析日志行,转换为结构化字典数据;最后用analyze_logs()进行统计分析,计算访问量、独立IP、状态码分布等指标。该项目演示了如何在实际数据处理中运用异常处理机制,确保程序能够应对各种意外情况,如格式错误、缺失字段等问题,最终生成可靠的日志分析报告。
2026-01-12 11:25:37
1052
原创 Python文件操作与异常处理实战:编写健壮的应用程序-5
文章摘要:高级异常处理技巧 本章深入探讨了Python中超越基础try/except的高级异常处理技术。核心内容包括: 自定义异常:通过创建语义明确的异常类(如DatabaseConnectionError)提升代码可读性和错误信息表达力 资源管理:利用with语句和上下文管理器确保资源(如文件、网络连接)的正确释放 异常链:使用异常链机制保留完整的错误调用链路,便于追踪问题根源 结构化处理:通过try/except/else/finally的合理组合,实现精确的错误捕获、成功处理和资源清理 异常传递:区分
2026-01-12 11:25:12
525
原创 Python文件操作与异常处理实战:编写健壮的应用程序-4
文章摘要: 文件处理是编程中的常见任务,但直接操作文件可能因路径错误、编码问题等导致程序崩溃。本章探讨如何通过异常处理和安全封装实现高效可靠的文件操作。核心方法包括:使用try-except捕获FileNotFoundError等异常;通过with语句自动管理资源;将通用逻辑封装为工具函数(如示例中的read_text_file)。该函数整合了文件打开、读取、异常处理和编码转换,使调用方只需关注业务逻辑。这种防御性编程模式能显著提升代码健壮性,建议在实际开发中优先使用封装好的安全方法而非裸调用open()。
2026-01-12 11:24:38
640
原创 Python文件操作与异常处理实战:编写健壮的应用程序-3
Python异常处理机制摘要 本章介绍了Python的异常处理机制,主要包括:1)基本try-except结构,用于捕获和处理异常;2)多重异常处理,针对不同类型错误提供特定响应;3)自定义异常类,创建具有业务含义的错误类型;4)异常链(raise...from...),保留原始错误上下文;5)else和finally子句,分别处理成功执行后的逻辑和必须执行的清理操作。通过合理使用这些特性,可以构建更健壮的程序,在出现错误时提供清晰反馈并确保资源正确释放。
2026-01-11 10:03:09
670
原创 Python文件操作与异常处理实战:编写健壮的应用程序-2
文件读取异常处理摘要 本章介绍了Python中文件读取操作的异常处理技术,强调健壮性编程的重要性。主要内容包括: 基础异常处理:使用try-except结构捕获FileNotFoundError、PermissionError等常见文件操作异常,通过finally确保资源释放。 上下文管理器:推荐使用with语句自动管理文件资源,避免忘记关闭文件的问题。 实用函数示例: read_text_file_with_context:带详细错误处理的文本文件读取函数 read_file_line_by_line:逐
2026-01-11 10:00:15
891
原创 Python文件操作与异常处理实战:编写健壮的应用程序-1
本文介绍了Python文件操作的基础知识,包括创建、读取、追加文件内容等基本操作。重点讲解了如何安全地处理文件操作中的常见异常情况,如文件不存在、权限不足等问题。文章提供了多个实用的文件操作函数实现,包括创建文件、读取全部内容、逐行读取、追加内容等,每个函数都包含异常处理机制。此外,还介绍了检查文件是否存在、获取文件大小等辅助功能。这些函数封装了Python内置的文件操作功能,使文件处理更加安全和便捷。
2026-01-11 09:59:42
1071
原创 Python进阶:从函数到模块化,构建可维护的代码世界-6
本章介绍了函数和模块化设计在文件管理器项目中的应用。通过封装文件操作(如检查路径、获取文件信息、复制文件等)为独立函数,代码变得清晰可复用。模块化则进一步将这些函数按功能分组到不同文件中,形成结构清晰的应用程序骨架。这种设计提高了代码的可维护性、协作性和复用性,使文件管理器项目从杂乱脚本发展为专业工具。
2026-01-10 09:56:46
811
原创 Python进阶:从函数到模块化,构建可维护的代码世界-5
摘要 本章介绍了代码组织与测试的专业实践方法。通过函数封装重复逻辑(如计算圆面积、验证邮箱),提升代码复用性和可读性。模块化将相关函数分组到不同.py文件中(如math_utils.py),使用import语句调用,使项目结构清晰。文中展示了多个实用函数示例(计算BMI、格式化日期、多语言问候等),强调通过函数"积木"构建复杂程序。测试部分虽未展开,但暗示了验证代码可靠性的重要性。这些实践帮助开发者从基础迈向专业水平。
2026-01-10 09:56:11
1032
原创 Python进阶:从函数到模块化,构建可维护的代码世界-4
本章介绍了Python模块化编程的核心概念,重点讲解了如何利用函数和模块提高代码复用性。主要内容包括:1)函数的作用与优势,通过format_file_size和validate_email等示例展示了如何封装可重用代码;2)模块化组织代码的方法,说明如何将相关函数归类到不同模块文件中;3)Python标准库和第三方库的使用价值,强调"站在巨人肩膀上"的开发理念。本章旨在帮助读者掌握模块化思维,学会利用现有高质量代码资源,避免重复造轮子,从而提升开发效率和代码质量。
2026-01-10 09:55:31
948
原创 Python进阶:从函数到模块化,构建可维护的代码世界-3
文章摘要(150字) 本章介绍了Python代码物理组织方式——模块与包。当项目规模增长时,将所有代码放在单一文件中会变得难以管理。Python模块(.py文件)提供了代码分组的能力,可以将相关函数、类组织到独立文件中,通过import语句复用。文中展示了自动创建模块的代码示例,该工具能生成包含函数定义、版本信息的标准模块文件。模块化开发使代码边界清晰,便于维护和协作,是构建可扩展项目的基础。通过合理使用模块,开发者可以像使用标准库一样高效地组织自己的代码库。
2026-01-09 11:25:29
480
原创 Python进阶:从函数到模块化,构建可维护的代码世界-2
本章深入探讨Python函数的参数传递与作用域规则,通过代码示例系统讲解位置参数、关键字参数、默认参数及可变参数(*args/**kwargs)的使用场景与组合技巧。重点解析了局部变量与全局变量的作用域边界,以及如何利用nonlocal和global关键字跨作用域修改变量。最后介绍了闭包机制,展示嵌套函数如何捕获并持久化外部函数状态。这些概念共同构成了Python函数灵活性与封装性的基础,为编写模块化、可维护的代码提供了核心工具。
2026-01-09 11:24:44
498
原创 Python进阶:从函数到模块化,构建可维护的代码世界-1
本文介绍了Python函数的基础知识,重点阐述了函数在代码复用和模块化编程中的核心作用。通过问候用户、计算矩形面积等示例,展示了函数的基本结构、参数传递、默认参数、可变参数和类型提示等关键特性。文章还探讨了高阶函数和生成器等高级用法,并强调了函数作为模块化编程起点的重要性,为构建可维护的大型程序奠定基础。
2026-01-09 11:23:57
528
原创 玩转Python核心数据结构:从基础到实战的编程基石-6
本章探讨Python核心数据结构(列表、字典、集合、元组)的综合应用与性能优化。重点内容包括:列表推导式与生成器表达式的内存效率对比;集合的O(1)复杂度在去重和成员检测中的优势;字典的哈希表实现及其在LRU缓存中的应用;以及针对大数据处理的性能考量。通过具体代码示例(如内存监控、文件分块读取、LRU缓存实现等),展示了如何根据实际场景选择合适的数据结构,平衡性能与内存使用。文中强调惰性处理、哈希表特性和抽象数据处理模式在实际项目中的重要性。
2026-01-08 10:21:00
816
原创 玩转Python核心数据结构:从基础到实战的编程基石-5
文章摘要 本章探讨Python字符串的不可变特性及其在文本处理中的优势。字符串不可变性确保了数据安全性和线程安全性,同时促使开发者采用函数式编程风格——通过一系列纯函数对原始字符串进行处理并返回新字符串,而非直接修改原数据。文中展示了一系列实用字符串处理函数,包括统计词数、检测回文、规范化空格、提取数字/字母等,并演示了如何将这些函数组合成处理流水线。这种不可变设计配合高效操作方法,构成了Python强大而安全的文本处理基础。
2026-01-08 10:17:28
1028
原创 玩转Python核心数据结构:从基础到实战的编程基石-4
Python集合摘要 Python集合是无序且元素唯一的容器,适合处理去重和集合运算。创建集合可使用{}或set()函数,会自动去除重复元素。集合支持添加(add)、删除(remove/discard)等基础操作,以及高效的数学运算:并集(union/|)、交集(intersection/&)、差集(difference/-)和对称差集(symmetric_difference/^)。这些特性使集合成为处理唯一性数据和集合运算的理想选择。此外,不可变的frozenset可用于需要哈希集合的场景。
2026-01-08 10:16:47
981
原创 玩转Python核心数据结构:从基础到实战的编程基石-3
本章深入解析Python字典这一强大的键值映射工具,展示了其在数据处理中的核心作用。通过多个实用函数示例,涵盖了字典的创建、嵌套访问、频率统计、分组操作、排序转换等常见应用场景。重点介绍了如何安全处理嵌套字典、高效统计元素频率、按需分组数据,以及字典与JSON格式的相互转换。此外,还提供了字典验证和深度合并等高级功能,帮助开发者构建更健壮的系统。这些技巧能显著提升处理关联性数据的效率和代码质量。
2026-01-07 10:45:37
852
原创 玩转Python核心数据结构:从基础到实战的编程基石-2
本文介绍了Python中两种核心序列类型——列表(List)和元组(Tuple)的特性与区别。列表是可变的动态容器,适合存储需要频繁修改的数据;元组是不可变的固定容器,适用于需要数据安全的场景。文章通过代码示例展示了它们的创建方式、类型转换方法以及相互嵌套的复杂数据结构应用。重点比较了两者在可变性上的本质差异,并演示了列表的常用操作方法。这些序列类型为Python处理有序数据集合提供了灵活而强大的工具。
2026-01-07 10:44:52
707
原创 玩转Python核心数据结构:从基础到实战的编程基石-1
本文介绍了数据结构的基本概念及其在Python中的实现方式。数据结构是计算机存储和组织数据的方法,直接影响程序性能。Python内置了四种核心数据结构:列表(有序可变序列)、元组(有序不可变序列)、字典(键值对映射)和集合(无序不重复元素集)。通过示例代码展示了如何创建和分析这些数据结构,包括判断其可变性、有序性、大小等特性。文章还提供了在嵌套数据结构中进行递归搜索的实用方法,帮助开发者更好地理解和运用这些基础数据结构来优化程序性能。
2026-01-07 10:44:07
918
原创 Python零基础入门实战教程:从Hello World到文件处理-7
摘要 本章介绍了Python中文件操作的基础知识,包括文件读写、追加、删除等常用功能。通过封装实用函数(如write_to_file、read_file_content等),简化了文件操作流程。内容涵盖文件检查、信息获取、扩展名识别、重命名、删除等操作,以及目录管理(如list_directory)。这些工具函数帮助开发者轻松实现数据持久化,适用于游戏存档、日志记录等场景。所有代码示例注重异常处理和编码规范,为初学者提供了可靠的文件操作解决方案。
2026-01-06 22:27:21
1045
原创 Python零基础入门实战教程:从Hello World到文件处理-6
摘要 本章介绍了编程中函数与模块的核心概念及其重要性。函数如同乐高组件,将重复性代码封装为可复用的功能单元,如greet_user()和celsius_to_fahrenheit()等示例所示。函数优势包括:1)代码复用,避免重复编写;2)功能组合,构建复杂系统;3)提升可读性,隐藏实现细节;4)促进团队协作。当函数数量增多时,可通过模块(.py文件)进行组织管理,如将数学工具函数放入math_tools.py。本章通过丰富示例展示了如何利用函数和模块实现高效、清晰的代码架构。
2026-01-05 10:35:08
661
原创 Python零基础入门实战教程:从Hello World到文件处理-5
本章介绍了Python中的流程控制结构,包括条件判断和循环语句。主要内容包括: 条件判断:使用if/elif/else结构实现程序分支,示例展示了根据分数评级和判断数字正负零的功能。 循环结构: while循环用于条件满足时重复执行,如累加求和 for循环适合遍历集合,如筛选列表中的偶数 嵌套循环可解决更复杂问题,如生成乘法表 循环控制语句: break用于立即终止循环 continue跳过当前迭代 综合应用:通过密码强度验证和购物车结算等示例,展示了如何组合使用这些控制结构实现复杂逻辑。 这些流程控制机制
2026-01-05 10:34:33
730
原创 Python零基础入门实战教程:从Hello World到文件处理-4
本章介绍了Python程序的基本输入输出功能及运算符使用。主要内容包括: 输入输出功能: 使用input()函数获取用户输入,示例展示了getUserInput()包装函数 使用print()函数进行输出,通过formatOutput()演示了sep和end参数的使用 算术运算符: 介绍了+、-、*、/等基本运算符 展示了arithmeticOperations()函数实现各种算术运算 区分了普通除法/和整除// 比较与逻辑运算符: 演示了>、==、!=等比较运算符 介绍了and、or、not等逻辑运
2026-01-05 10:33:41
642
原创 Python零基础入门实战教程:从Hello World到文件处理-3
本章介绍了Python编程中的变量与基本数据类型概念。变量是存放数据的容器,而数据类型决定了数据的操作方式。Python内置了多种基本数据类型,包括整数、浮点数、字符串、布尔值、列表、元组、字典、集合和None类型。通过示例函数展示了如何创建这些数据类型,并提供了实用工具函数来检查数值类型、转换字符串为数字、格式化数字输出以及分析字符串属性。这些核心概念是构建Python程序的基础,理解它们对于后续编程学习至关重要。
2026-01-04 11:11:28
506
原创 Python零基础入门实战教程:从Hello World到文件处理-2
本章介绍了Python编程的入门知识和代码规范。从经典的"Hello, World!"程序入手,展示了变量声明、字符串打印和简单计算等基础操作。重点讲解了Python社区的PEP 8代码风格指南,包括命名规范(变量、函数、类、常量的命名规则)、缩进要求(4个空格)、注释标准(单行、多行注释格式)、导入规范(导入顺序和格式)以及其他重要规则(如行长度限制和空格使用)。这些规范旨在帮助开发者编写清晰、一致且易于维护的代码,为后续Python学习奠定良好基础。
2026-01-04 11:10:46
991
原创 Python零基础入门实战教程:从Hello World到文件处理-1
本章介绍了如何搭建Python开发环境,包括检查Python版本、创建虚拟环境、安装依赖包等关键步骤。通过示例代码展示了如何验证环境配置,如打印系统信息、检查包安装情况等。虚拟环境的使用可避免项目间的依赖冲突,而requirements.txt文件则简化了依赖管理流程。本章为Python初学者提供了完整的环境配置指南,确保开发环境独立、稳定且符合项目需求。
2026-01-04 11:01:23
905
原创 PHP现代化转型之路:高性能实践与未来技术全景-8
摘要 本章通过实际案例展示如何将PHP核心技能整合应用于真实项目开发。重点探讨了现代PHP应用架构设计原则和技术选型策略,包括环境检测、JSON响应处理和并行计算等实用功能实现。通过代码示例演示了生产环境判断、API响应构建以及多进程处理等高级技术应用,同时分析了技术决策中的关键权衡因素,如性能与开发效率的平衡。本章为开发者提供了从零散技术点到完整系统构建的实践指导,帮助读者理解如何选择适合项目需求的解决方案。
2026-01-03 10:13:20
840
原创 PHP现代化转型之路:高性能实践与未来技术全景-7
文章摘要 本章探讨PHP与前沿技术的融合应用,重点介绍AI集成、WebAssembly和异步编程三大方向: AI集成:通过API调用或本地推理模式,使PHP应用具备自然语言处理、图像生成等智能能力,如自动生成文章摘要、情感分析等。 WebAssembly:利用WASM突破PHP性能限制,可将计算密集型任务(如图像处理)交给C++/Rust等编写的高性能模块执行,同时保持PHP的业务逻辑优势。 异步并发:通过Swoole、ReactPHP等框架实现高效任务调度,解决AI调用延迟问题,提升系统吞吐量。 实践案例
2026-01-03 10:12:57
1073
原创 PHP现代化转型之路:高性能实践与未来技术全景-6
本章探讨了PHP语言的现代化演进与高性能开发实践。PHP8系列引入的新特性如match表达式、枚举和属性(Attribute)显著提升了代码表达力和安全性。JIT编译器为计算密集型任务带来性能飞跃,而纤程(Fiber)和异步框架(如ReactPHP)则优化了I/O密集型应用的处理能力。现代开发流程中,静态分析工具(Psalm/PHPStan)和API优先设计(OpenAPI规范)成为提升代码质量和协作效率的关键。PHP正通过语言内核革新与丰富工具生态,转型为高性能服务端开发平台。
2026-01-03 10:12:37
993
原创 PHP现代化转型之路:高性能实践与未来技术全景-5
摘要 本章探讨了GraphQL作为现代后端交互模式的核心优势与实现方式。相比传统REST API,GraphQL解决了"过度获取"和"获取不足"问题,允许客户端精确指定所需数据字段。其架构基于三个核心概念:模式定义(Schema)作为API蓝图,查询语言(Query)实现声明式数据获取,以及解析器(Resolver)处理字段数据逻辑。PHP中通过webonyx/graphql-php等库实现GraphQL服务,提供一个统一端点接收结构化查询并返回匹配数据。这种模式特别
2026-01-02 11:58:57
964
原创 PHP现代化转型之路:高性能实践与未来技术全景-4-2
本文探讨了如何将传统PHP应用改造为云原生微服务,重点介绍了容器化环境下的配置管理和健康检查机制。通过示例代码展示了如何从环境变量和cgroups获取容器配置信息,包括服务网格设置、资源限制等关键参数。同时提供了创建健康检查端点的函数框架,帮助PHP服务适应Kubernetes等云原生平台的运维需求,实现从单体应用到微服务架构的平滑过渡。
2026-01-02 11:58:37
840
原创 PHP现代化转型之路:高性能实践与未来技术全景-4-1
本文探讨了PHP微服务在云原生环境中的容器化与服务网格适配。随着架构向分布式演进,传统单体架构在扩展性和维护性方面面临挑战,服务网格技术(如Istio、Linkerd)通过将网络通信等基础设施能力下沉,使开发者能专注于业务逻辑。文章重点介绍了PHP应用的容器化实现,包括运行时检测、能力加载和资源管理,通过代码示例展示了如何识别容器环境、解析Linux能力位图以及获取CPU/内存资源限制。这些实践为PHP微服务融入云原生体系提供了技术基础,解决了服务治理复杂性和部署管理难题。
2026-01-02 11:58:19
788
原创 PHP现代化转型之路:高性能实践与未来技术全景-3
摘要 本章深入探讨如何利用Swoole协程实现PHP高性能异步编程。通过协程模型,PHP可以突破传统同步阻塞模式的性能瓶颈,实现真正的并发处理。核心内容包括:协程的基本原理(挂起与恢复机制)、与同步模式的性能对比(300ms vs 100ms的实例)、Swoole协程API的使用(如创建协程、获取协程ID等),以及实战应用(非阻塞数据库查询、HTTP请求等)。特别介绍了性能对比工具函数,帮助开发者直观理解异步编程的优势。本章不仅教授技术实现,更旨在转变开发者的思维模式,从顺序等待转向并行协作。
2026-01-01 09:45:54
1041
原创 PHP现代化转型之路:高性能实践与未来技术全景-2
摘要 PHP 8+版本带来了革命性变化,构建了强类型与高性能的现代编程语言基石。核心特性包括:1)强类型系统全面升级,引入联合类型、mixed伪类型和严格类型检查,提升代码健壮性;2)JIT编译器显著提升计算密集型任务性能;3)语法精炼改进,如属性(Attributes)替代文档注释、命名参数增强可读性;4)新增match表达式等现代语法特性;5)通过扩展和Fibers支持高并发处理。这些变革使PHP从脚本语言进化为注重类型安全、性能优化和开发体验的现代语言,同时保持对传统应用的兼容性。
2026-01-01 09:45:09
999
原创 PHP现代化转型之路:高性能实践与未来技术全景-1
PHP已从简单的脚本语言演变为支撑高流量网站的成熟运行时环境。本章概述了PHP的现代演进历程,重点介绍了类型系统的强化(从PHP5到PHP8的类型声明改进)、性能优化(如OPcache和JIT编译器)以及环境诊断工具。提供了两个实用函数:getPhpRuntimeInfo()用于获取当前PHP环境的详细信息,isPhpFeatureSupported()用于检测特定功能是否可用。这些改进使PHP能够更好地支持大型复杂应用的开发,同时保持其原有的快速开发特性。
2026-01-01 09:43:49
840
前端可视化-Canvas粒子系统-烟花特效-交互式展示应用
2025-12-31
数据库-SQL索引策略查询优化-EXPLAIN实战教程
2025-12-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅