- 博客(53)
- 资源 (5)
- 收藏
- 关注
原创 深入理解观察者模式 —— Qt信号槽机制的实现
观察者模式是一种行为型设计模式,允许一个对象(被观察者)状态发生变化时通知一组依赖它的对象(观察者),从而实现对象之间的解耦。在这篇文章中,我们将探讨如何用 C++ 和 Python 实现观察者模式,并在代码中清晰地体现这一设计模式的核心思想。其实Qt的信号槽机制,就是借住了这一设计模式,并对其进行了一些扩展。由于Qt广泛的被C++和Python用户使用,所以这里给出Python和C++两个版本的简单实现示例。
2025-01-13 14:21:31
757
原创 深入理解 Python 的结构化模式匹配(match 语句) —— python的switch-case
Python 3.10 引入了一项强大的新特性——结构化模式匹配(match 语句),为代码逻辑处理提供了一种简洁且灵活的方式。它不仅可以替代传统的多重条件判断,还能高效处理复杂的数据结构。语句,Python 开发者可以以更清晰的方式表达复杂逻辑。无论是处理简单的值匹配,还是解析复杂的嵌套结构,,可以根据变量值的结构或模式快速进行分支处理,同时支持对复杂对象进行解构操作。是 Python 中的一种结构化模式匹配工具,它类似于许多语言中的switch-case语法、基本用法及其在不同场景下的实际应用。
2025-01-10 11:37:49
370
原创 面向对象编程思想入门指南
面向对象编程(OOP)是一种直观的编程思想,强调通过“类”和“对象”构建程序,便于管理和扩展。本文通过现实世界的比喻、简单的代码示例,以及文本绘图的方式,全面解读了 OOP 的核心概念,包括类、对象、封装、继承和多态,让初学者轻松掌握这些知识并理解其背后的设计思想。
2024-12-10 11:52:32
637
原创 Python设计模式详解之21 ——状态模式
State 模式通过将状态逻辑抽象到独立的类中,使得对象行为在状态变化时可以动态切换。这种设计模式非常适合管理复杂的状态机或状态转换逻辑。尽管实现时会增加类的数量,但这种解耦方式提高了代码的可维护性和扩展性。
2024-11-29 09:30:00
438
原创 Python设计模式详解之22 ——职责链模式
职责链模式通过将请求的处理分解为多个处理者,提高了系统的灵活性和扩展性。它适用于多层次处理需求或需要解耦请求与处理逻辑的场景。不过,使用时需注意链的长度和请求未处理的风险。Python 的动态特性也为职责链模式的实现提供了更多的简洁性和灵活性。
2024-11-29 09:30:00
287
原创 Python设计模式详解之23 —— 访问者模式
Visitor 模式通过将操作封装到访问者中,解耦了操作逻辑与数据结构,使得可以轻松扩展操作逻辑。然而,它也增加了系统的复杂性,适用于操作频繁变化而数据结构稳定的场景。Python 的动态特性也为 Visitor 模式的实现提供了更多的灵活性,例如通过反射或动态方法调用简化双重分派的实现
2024-11-29 09:30:00
752
原创 Python设计模式详解之19 —— 解释器模式
Interpreter 模式是解析器设计的核心思想,适合实现小型 DSL、公式解析器或指令处理器。Python 的动态性和内置工具(如 `eval`、`re`)可以减少手动实现,但对于更复杂的需求,结合 Interpreter 模式提供更灵活和可扩展的设计
2024-11-28 09:30:00
363
原创 Python设计模式详解之20 ——策略模式
Strategy 模式在需要动态改变算法、消除复杂条件分支或提高代码可扩展性时非常有用。Python 的动态特性(如函数作为对象)也为实现 Strategy 模式提供了简洁的方式,适合根据具体需求选择实现形式。
2024-11-28 09:30:00
965
原创 Python设计模式详解之17 —— 中介者模式
Mediator(中介者)设计模式 是一种行为型设计模式,用于通过一个中介对象封装一组对象之间的交互,简化复杂的对象之间的依赖关系。它的目标是减少对象之间的直接耦合,使系统更加灵活和可维护。在 Python 中,Mediator 模式 通常通过一个专门的中介类管理多个组件的交互。这些组件通过中介者传递消息,而不是直接引用彼此。
2024-11-27 09:30:00
334
原创 Python设计模式详解之18 ——备忘录模式
Memento(备忘录)设计模式是一种行为型设计模式,用于保存对象的状态,以便在需要时可以恢复到之前的状态。它将状态保存逻辑与使用该状态的对象分离,从而遵守单一职责原则。在 Python 中,Memento 模式可以通过类、嵌套类甚至简单的字典结构实现。
2024-11-27 09:30:00
393
原创 Python中的23种设计模式:详细分类与总结
设计模式是解决特定问题的通用方法,分为创建型模式、结构型模式和行为型模式三大类。本文是对每种模式的详细介绍,包括其核心思想、应用场景和优缺点。
2024-11-26 10:55:57
1384
原创 Python设计模式详解之16 —— 观察者模式
Python 中的 Observer(观察者)设计模式 是一种行为型设计模式,用于定义一种订阅机制,让多个观察者对象在某一对象的状态发生变化时自动接收到通知。该模式常用于事件驱动的架构,例如 GUI 系统、消息推送系统等。
2024-11-26 09:42:03
476
原创 Python设计模式详解之15 ——迭代器模式
Python 中的 Iterator(迭代器)设计模式是一种行为型设计模式,用于逐一访问集合对象中的元素而不暴露其底层实现。Python 本身对迭代器模式提供了良好的支持,迭代器通常通过 `__iter__` 和 `__next__` 方法实现。
2024-11-26 09:38:34
706
原创 Python设计模式详解之14 —— 命令模式
命令模式(Command Pattern) 是一种行为型设计模式,它将请求封装为对象,从而使您可以用不同的请求、队列或日志来参数化其他对象。命令模式还支持撤销操作。在 Python 中,命令模式通常用来解耦命令的发送者(调用者)和接收者(执行者),使得命令的调用者不需要知道命令是如何执行的。
2024-11-25 14:43:27
738
原创 Python设计模式详解之13 —— 模板方法模式
Template Method 设计模式是一种行为型设计模式,用于定义一个操作的骨架,将某些步骤延迟到子类中实现,从而允许子类在不改变整体算法结构的情况下重新定义某些步骤。在 Python 中,Template Method 模式通常使用基类的方法来定义通用算法框架,并通过子类覆盖特定步骤实现具体逻辑。
2024-11-25 14:41:52
640
原创 Solid原则详解(以Python语言为例)
SOLID 原则是一组指导面向对象设计的核心准则。遵循这些原则能提高代码的可读性、可维护性和扩展性,使项目更易于管理和扩展。
2024-11-23 10:00:00
804
原创 Python设计模式详解之11 —— 享元模式
Flyweight(享元)设计模式是一种结构型设计模式,旨在通过共享相同的对象以减少内存使用和对象创建的开销。它非常适合应用于需要创建大量细粒度对象的场景,例如图形编辑器中的形状、文字处理软件中的字符等。
2024-11-22 09:30:00
460
原创 Python设计模式详解之12 —— 代理模式
代理模式是一种结构型设计模式,它提供了一个代理对象来控制对目标对象的访问。代理可以在目标对象之前进行一些操作,如控制访问权限、延迟实例化或添加额外的功能。
2024-11-22 09:30:00
238
原创 Python设计模式详解之10 —— 外观模式
Facade模式(外观模式)是一种软件设计模式,它提供了一个统一的接口来访问子系统中的一组接口。Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。当一个系统的内部实现非常复杂,或者需要与多个复杂的子系统交互时,Facade模式可以用来简化这些交互,使客户端代码更加简洁易懂。
2024-11-21 15:01:16
602
原创 吴恩达《提示词工程》(Prompt Engineering for Developers)课程详细笔记
Prompt Engineering for Developers课程的完整笔记,建议配合实际练习和工具(如 OpenAI Playground 或 API)进行实践,加深对提示词工程的理解和应用。
2024-11-21 10:06:24
1559
原创 Python设计模式详解之8 —— 组合模式
组合模式在软件开发中,是一种结构型模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。它使得客户端可以以一致的方式对待单个对象和组合对象,从而实现了对树状结构的透明操作。
2024-11-21 09:30:00
285
原创 Python设计模式详解之9 —— 装饰器模式
Decorator(装饰器)设计模式是一种结构型设计模式,它允许你动态地给一个对象添加一些额外的职责,而无需修改原有的类。通过装饰器,可以在不改变对象的情况下,增加功能,避免过度使用继承。本文将介绍如何使用 Python 实现 Decorator 模式,并通过示例展示它的应用。
2024-11-21 09:30:00
410
原创 由剪头发引发的职业观和价值观的深思
最近剪头发的时候,跟理发师有一段对话我:你经常剪头发,有关注过人头顶上的漩吗?比如正的多还是反的多他:没有,这个还有什么区别么?我:最近看到研究说有正的有反的,不知道对你剪头发时候有没有影响他:正的反的不是一样剪吗?我剪个头发就20-30块钱,还关注这个我:那可能你关注了,就不止20-30了他:我到一些大的商场好的地方剪,也不止二三十啊我就不再说话了通过这次交流,我们可以从职业观和价值观1. 职业的精细化与专业化提出的问题,实际上引导向职业技能的精细化和专业化。
2024-11-21 09:24:00
932
原创 鸿蒙系统(HarmonyOS)的多领域应用与开发者机遇
本文探讨了华为自主研发的鸿蒙操作系统(HarmonyOS)在工业互联网、教育、国企及政府机构等领域的应用前景及其为开发者带来的机遇与挑战。通过对鸿蒙系统独特特性的分析,文章指出该系统不仅在技术上具有显著优势,而且在推动国产技术崛起、解决“卡脖子”技术问题方面发挥了重要作用。同时,文中也指出了开发者在利用鸿蒙系统时可能面临的若干挑战,并提出了相应的建议。
2024-11-20 09:44:06
514
原创 Python设计模式详解之6 —— 适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许通过“包装”现有对象来使其适应不同的接口。适配器模式通常用于将一个类的接口转换成客户端所期望的接口,从而使得原本由于接口不兼容而无法一起工作的类能够协同工作。
2024-11-20 09:00:00
565
原创 Python设计模式详解之7 —— 桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,旨在通过将抽象部分和实现部分分离,使得两者可以独立变化。桥接模式的核心思想是将“抽象”与“实现”分离开来,使得它们可以独立扩展,从而避免了类的爆炸性增长。
2024-11-20 09:00:00
879
原创 Python设计模式详解之5 —— 原型模式
Prototype 设计模式是一种创建型模式,通过复制现有对象来创建新对象,避免了复杂的构造过程。它适用于对象创建成本高、需要保持对象状态或减少构建时间的场景。Python 使用 copy 模块实现 Prototype 模式,支持浅拷贝和深拷贝,分别复制对象的引用和对象本身。Prototype 模式有助于快速创建对象、简化构建过程,但需要处理引用类型的克隆问题,尤其是在复杂结构中。Prototype 管理器可用于存储和克隆不同的原型以提高复用性。
2024-11-19 09:25:18
2529
原创 Python设计模式详解之4 —— 建造者模式
Builder 模式是一种创建型设计模式,用于将复杂对象的构建过程分解为多个步骤,以实现对象创建的灵活性和可控性。Python 中的 Builder 模式通过类和链式调用实现,构建复杂对象时,使用 Builder 类逐步设置各个属性,最终通过 build() 方法返回完整对象。Director 类可用于定义构建步骤的顺序,支持生成不同变体的对象。Builder 模式的优势包括提高代码可读性、支持多种对象配置、实现分步骤构建等。适用于需要创建复杂对象或变体的场景。
2024-11-19 09:19:58
705
原创 Python设计模式详解之3 —— 抽象工厂模式
抽象工厂模式是一种创建型设计模式,用于创建一系列相关或相互依赖的对象,而无需指定它们的具体类。它提供一致性、解耦性,并符合开闭原则,但增加了实现复杂度和类数量。适合需要创建相关产品族的场景。
2024-11-18 09:21:57
705
原创 Python设计模式详解之2 —— 工厂模式
简单工厂模式通过一个工厂类的静态方法,根据输入创建不同类型的对象。优点是易用、集中管理对象创建,但不符合开闭原则,随着产品种类增加会变得复杂。适用于创建少量类的场景。工厂方法模式将创建对象的接口定义在抽象工厂中,由具体工厂类实现,返回特定产品。优点是符合开闭原则,便于扩展,但增加了实现的复杂性和类的数量。适用于产品类型多且需要扩展的场景。总结:简单工厂模式简单直接,适合简单场景;工厂方法模式更灵活,适用于复杂需求和扩展性要求高的场合。
2024-11-18 09:12:30
1308
原创 Python设计模式详解之1 —— 单例模式
单例模式确保一个类在整个程序运行期间只有一个实例,并提供全局访问点。本文详细介绍了如何在Python中实现单例模式,包括使用元类和其他常见方法,并讨论了它们的优缺点和应用场景。
2024-11-18 08:53:46
1116
原创 0 -vscode搭建python环境教程参考(windows)
功能和特性:PyCharm 更侧重于 Python 开发,提供更全面的 Python 集成支持,特别是对 Django、Flask 等框架的支持。而 VSCode 是多语言编辑器,通过扩展实现 Python 支持。轻量性:VSCode 更轻量,适合需要多语言编程或不想花费过多资源的开发者。PyCharm 功能丰富,但资源占用较大,适合主要使用 Python 并需要高级功能的用户。扩展和插件:VSCode 依赖于插件来增加功能,而 PyCharm 内置了许多 IDE 功能,用户体验更流畅。学习曲线。
2024-11-15 09:51:13
807
原创 13. 元类 —— python最高级的话题详解
元类是 Python 强大的高级特性,提供了修改类定义和行为的能力。它们适用于控制类结构、实现设计模式(如单例)和增强框架功能。尽管功能强大,但因其复杂性,开发者应在需要深度定制类行为时慎重使用元类。了解元类非常有助于深入了解python本身
2024-11-15 08:46:26
425
原创 12. 深入剖析 Python 装饰器:原理、应用与最佳实践
Python 装饰器是一种灵活且强大的工具,能够为函数、方法和类动态增加功能。本文深入剖析装饰器的核心概念和工作原理,详细讲解其在日志记录、访问控制、性能测量和缓存等场景中的应用。通过丰富的实战示例,读者将学习如何编写和组合装饰器,以及如何实现类装饰器和参数化装饰器。文章还分享了最佳实践和注意事项,帮助开发者编写更简洁、可维护和扩展性强的代码。
2024-11-15 08:46:12
477
原创 11. 深入理解 Python 描述符及其应用场景详解
描述符是 Python 中用于管理对象属性的强大工具,能够自定义属性的获取、设置和删除行为。本文详细介绍了描述符的概念、类型以及创建和使用方法,涵盖了数据描述符与非数据描述符的区别。通过示例展示了如何实现属性验证、数据封装和惰性计算属性,并讨论了描述符的工作原理与其在属性访问中的优先级。此外,文章还对 property() 函数与描述符的关系进行了阐述,并分享了使用描述符的高级技巧和注意事项,以帮助开发者有效地应用描述符提高代码灵活性和可维护性
2024-11-14 11:03:49
492
原创 10. Python 自定义异常处理详解
在 Python 编程中,自定义异常处理可以提高代码的可读性和可维护性。本文详细介绍了如何创建和使用自定义异常,涵盖了基本概念、最佳实践和大型项目中的应用。通过继承 Exception 类、自定义 __init__ 方法以及分层结构化设计,开发者可以更灵活地捕获和处理特定错误。文章还包括异常的日志记录、调试技巧及如何在代码中有效捕获多种异常类型。通过这些方法,程序能够更加精准、优雅地处理错误,提高整体软件质量
2024-11-14 10:16:55
416
原创 9. 深入解析:python类的__init__ 方法中实例变量 self.xx 与类级变量的差异
本文深入探讨了 Python 中类的设计中实例变量与类变量的区别。实例变量通过 `self.xx` 在 `__init__` 方法中定义,为每个实例独立存储和修改;类变量则直接定义在类体内,供所有实例共享。文章详细分析了它们的定义、作用范围、修改行为及适用场景,帮助开发者更好地理解和应用这两种变量类型以编写更高效和维护性强的代码。
2024-11-13 11:07:41
553
原创 8. 深入理解 Python 运算符重载:概念、示例与特殊情况解析
在这篇文章中,我们详细介绍了 Python 运算符重载的概念,给出了一个简单的 Vector 类的实现,并探讨了重载中常见的特殊情况和注意事项。运算符重载不仅能让代码更简洁,还能提高开发效率。掌握运算符重载,可以帮助你在实现自定义类时写出更加 Pythonic 的代码。
2024-11-13 08:32:23
386
原创 7. Python 导入详解:绝对导入与相对导入的区别与应用
绝对导入和相对导入各有其适用场景。相对导入适合包内模块间的简单导入,而绝对导入适合大型项目的跨包导入和模块共享。为了确保代码的稳定性和可读性,推荐在跨包导入时使用绝对导入。
2024-11-12 08:33:20
1248
原创 6. 深入解析 Python 生成器函数:yield 与 return 的对比及应用
生成器函数是 Python 中使用 `yield` 关键字的特殊函数,返回一个生成器对象,能够暂停和恢复执行,实现惰性求值和节省内存。与使用 `return` 的普通函数相比,生成器函数适合处理大数据和流式数据,多次产出值且按需生成。`yield` 和 `return` 的对比显示,生成器函数在控制复杂迭代逻辑、减少内存消耗和实现协程等应用中有显著优势。
2024-11-12 07:17:16
460
Lib_Glog.zip
2021-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人