自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 收藏
  • 关注

原创 观察者模式

观察者模式(Observer Pattern)是一种行为设计模式,它允许一个对象(被观察者)维护一组依赖于它的对象(观察者),当被观察者的状态发生改变时,会自动通知所有观察者对象。这种模式非常适合于那些当一个对象的状态发生变化时需要自动通知其他对象的情况。是一个具体的被观察者,它有一个状态属性。当状态发生变化时,它会通知所有注册的观察者。方法,所有注册的观察者都会收到通知并执行。方法被调用时,它会打印出一条消息。是一个具体的观察者,当它的。属性被修改时,会触发。

2024-05-23 22:28:44 126

原创 抽象工厂方法

抽象工厂方法(Abstract Factory)是一种创建型设计模式,它提供了一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。这种模式允许客户端代码与具体类的创建逻辑解耦,使得系统可以轻松地切换不同系列的对象。接受一个工厂对象作为参数,并使用该工厂创建手机和笔记本电脑,然后打印出它们的规格。这样,客户端代码与具体产品的创建逻辑解耦,可以轻松地切换不同品牌的工厂。这个例子展示了如何使用抽象工厂方法来创建不同品牌的产品,同时保持了客户端代码与具体产品类的解耦。,用于创建手机和笔记本电脑。

2024-05-20 21:27:08 131

原创 PyArmor库

PyArmor 是一个用于保护 Python 代码免受反编译的工具。它通过加密 Python 字节码,并可选地将其绑定到特定的硬件或分发许可,来增强代码的安全性。下面的教程适用于中级以上的 Python 工程师,将介绍如何使用 PyArmor 来保护 Python 项目。对于 PyArmor 8.0 及以上版本,对命令结构进行了简化,主要包括genreg和cfg这三个命令。

2024-05-19 22:23:42 388

原创 面向对象设计原则(SOLID)在Flask框架中的应用

SOLID 原则是面向对象设计(OOD)中非常重要的五个设计原则,它们可以帮助软件开发者设计出更易于理解、维护和扩展的系统。:一个类应该只有一个引起它变化的原因。:软件实体应当对扩展开放,对修改封闭。这意味着当软件需要变化时,应尽量通过扩展来实现变化,而不是修改已有的代码。:子类应该能够替换掉它们的父类而不使得父类的原有功能受到影响。:客户不应该被迫依赖于它们不使用的方法。接口应该小而专一,而不是大而全。:高层模块不应该依赖低层模块,它们都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。

2024-05-14 17:24:11 848

原创 如何在Linux中查找特定端口号上的服务及其执行命令

在Linux系统中,要查看特定端口号(例如5127端口)上的服务以及相关的执行命令,可以使用netstat或ss命令。netstat是传统的命令行工具,而ss是net-tools包中的一个新工具,提供了更快的输出和一些netstat没有的功能。

2024-05-13 19:53:21 288

原创 如何检查远程服务器端口是否开放

比如要判断远程服务器上的3306端口是否开放,你可以使用多种方法,包括使用命令行工具、编写Python脚本或者使用在线服务。

2024-05-13 19:41:05 336 1

原创 面向对象-开闭原则

开闭原则(Open/Closed Principle, OCP)是面向对象设计中的一个原则,它指出软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。为了遵守开闭原则,我们应该设计代码以便于未来的扩展,而不是通过修改现有代码来实现新功能。在Python中,我们可以使用抽象基类(ABC)和继承来实现开闭原则。的代码,就可以为新的形状添加新的功能。通过这种方式,我们遵守了开闭原则,因为我们不需要修改基类。的情况下,为不同的形状添加新的功能。,我们只需要创建一个新的子类,并实现。的实例,并调用它们的。

2024-05-11 22:38:08 257 1

原创 单一职责原则

单一职责原则(Single Responsibility Principle, SRP)是面向对象设计中的一个基本原则,它指出一个类或模块应该只有一个引起变化的原因。这样做的好处是,当需要修改时,只有一个地方需要改动,从而提高了代码的可维护性和可读性。通过这种方式,我们将员工信息和工作日程管理的职责与发送邮件的职责分离开来,每个类都有一个单一的职责。类有两个职责:存储员工信息和管理员工的工作日程,以及发送邮件。为了遵守单一职责原则,我们应该将发送邮件的职责分离到不同的类中。

2024-05-10 12:56:32 184 1

原创 接口隔离原则

接口隔离原则(Interface Segregation Principle, ISP)是面向对象设计中的一个基本原则,它指出客户不应该被迫依赖于它们不使用的方法。这个原则主张将大型的接口拆分成更小、更具体的接口,以确保客户只需要实现它们感兴趣的方法。下面是一个简单的Python代码案例,展示如何应用接口隔离原则。类只需要实现它们感兴趣的方法,这样就遵守了接口隔离原则。这种方法使得我们的代码更加模块化,易于维护和扩展。这意味着这两个类都被迫实现它们不需要的方法。首先,我们定义一个大型接口。

2024-05-10 12:48:50 179

原创 里式替换原则

里式替换原则(Liskov Substitution Principle, LSP)是面向对象设计中的一个基本原则,它指出子类应该能够替换它们的基类而不影响程序的正确性。这意味着子类应该继承基类的所有行为,并且遵守基类的所有契约和约束。下面是一个Python代码案例,展示了如何遵守里式替换原则。类不兼容的行为,那么这将导致问题。如果我们尝试违反里式替换原则,比如在。类的契约,那么这将违反里式替换原则。类中添加一个方法,该方法改变了。首先,我们定义一个基类。现在,我们定义一个函数。方法,因此它们可以替换。

2024-05-10 12:01:27 192 1

原创 依赖倒置原则

接下来,我们有一个高层模块,负责使用通知类发送消息。这个高层模块不应该直接依赖于具体的实现类,而是依赖于抽象的。这样设计的好处是,如果我们以后想添加新的通知方式(比如推送通知),只需要添加一个新的实现了。这符合了依赖倒置原则,也使得系统更加灵活和可扩展。接口的类,而不需要修改。类,而是依赖于抽象的。

2024-05-10 09:19:01 279

原创 软件架构基本技法-关注点分离

关注点分离(Separation of Concerns)是软件架构设计中的一个基本原则,它要求将软件系统中的不同关注点分离到不同的模块或组件中。这样可以使得每个组件只关注一个特定的功能或领域,从而提高系统的可维护性、可扩展性和可理解性。在Python中,关注点分离可以通过模块化、类和函数封装、以及使用设计模式来实现。以下是一个Python案例,展示了如何通过关注点分离来设计一个简单的文本编辑器。

2024-05-08 16:11:01 134

原创 软件架构基本技术-分治

分治(Divide and Conquer)是一种常见的算法设计技术,它将一个问题分解成若干个较小的相同问题,分别解决这些子问题,然后再合并这些子问题的解以得到原问题的解。函数负责分解数组并递归地调用自身来排序数组的左右两部分。这个过程会一直重复,直到数组被分解为单个元素或空数组,然后这些元素会被合并成排序好的数组。分治原则是解决复杂问题的一种强大方法,它不仅适用于排序算法,还适用于许多其他问题,如归并排序、二分搜索、大数乘法等。

2024-05-08 15:16:55 158

原创 软件架构基本技术-单一引用点

单一引用点(Single Point of Truth)是一种设计原则,它建议在系统中每个信息片段应该有一个唯一的、明确的来源。这意味着在系统中,任何数据或配置信息都应该只存储在一个地方,以避免冗余和可能的矛盾,使得维护和更新变得更加容易。在Python中,单一引用点可以通过多种方式实现,例如使用配置文件、环境变量、数据库或集中的配置管理器。这样,无论何时需要配置信息,都可以从配置管理器中获取,而不是硬编码或在多个地方定义相同的配置。文件是系统中配置信息的单一真实来源。首先,我们定义一个配置文件。

2024-05-08 15:05:38 262

原创 软件架构基本技术-策略和实现

策略和实现的分离是一种设计模式,通常称为“策略模式”。这种模式允许在运行时选择算法的行为,使得算法的可变性独立于使用算法的客户端。以下是一个简单的Python示例,展示了如何实现策略模式。的策略,我们可以改变文本格式化的行为,而不需要修改格式化器的代码。这就是策略模式的好处:它允许你在运行时根据需要切换算法的实现,而不影响使用算法的客户端代码。假设我们有一个文本格式化程序,它可以将文本转换为大写或小写。我们定义一个策略接口(在Python中通常是一个抽象基类)和一个或多个具体策略来实现这个接口。

2024-05-08 14:59:40 283

原创 可测试性

可测试性(Testability)是指软件系统能够被测试的程度,以及进行测试的容易程度。高可测试性的软件更容易进行验证和确认,有助于确保软件质量和可靠性。

2024-05-07 09:48:46 199

原创 软件架构基本技术--接口与实现分离

接口与实现分离是软件工程中的一种设计原则,它要求将软件组件的接口(即它与其他组件交互的方式)与其内部实现(即组件的具体工作方式)分开。这样做可以提高代码的灵活性和可维护性。

2024-05-07 09:18:54 370

原创 状态模式之自动售货机

状态模式(State Pattern)是行为型设计模式之一,它允许一个对象在其内部状态改变时改变其行为。这个模式将对象的状态抽象化,并将每个状态封装为一个内部类,使得对象可以在这些内部状态之间切换,其行为也随之改变。

2024-04-30 12:02:05 173

原创 桥接模式应用-数据库访问层

passpassquery } ") # 这里应包含实际的MySQL查询代码 def execute(self , command : str) : print(f"Executing MySQL command: {command } ") # 这里应包含实际的MySQL执行代码 class PostgreSQLDatabase(Database) : def query(self , query : str) : print(f"Querying PostgreSQL database: {

2024-04-29 17:51:45 191

原创 极简numpy库dtype.kind

numpy是一个强大的Python库,用于对数组和矩阵进行操作。在numpy中,数组的数据类型由dtype对象表示,该对象描述了数组中每个元素的数据类型。dtype对象有一个名为kind的属性,它表示数据类型的类别。

2024-02-01 22:03:32 405

原创 极简pandas库<M8[ns]

希望这个解释对您有帮助!如果您有任何疑问或需要进一步的解释,请随时告诉我。

2024-02-01 13:52:51 246

原创 极简pandas库replace

replace函数是Pandas库中用于替换DataFrame或Series中数据的常用函数。它可以帮助我们快速地替换掉不符合要求的值,例如将缺失值替换为某个特定值,或者将某些异常值替换为正常值。

2024-02-01 13:42:20 134

原创 极简pandas库Timestamp

Pandas库中的Timestamp对象Pandas库是Python数据分析中的重要工具,它提供了高性能、易用的数据结构和数据分析工具。Timestamp是Pandas中用于表示时间点数据的基本对象,它是datetime64数据类型的扩展,具有更丰富的时间序列功能。架构概览Timestamp对象通常包含以下几个主要组成部分:时间值:表示一个具体的时间点。时间单位:例如秒、毫秒、微秒等。时区信息:表示时间所处的时区。内容讲解基本语法创建一个Timestamp对象的基本语法如下:pd.T

2024-01-31 09:58:11 593

原创 极简ISO 8601

ISO 8601是一种国际标准,用于表示日期和时间。它是由国际标准化组织(ISO)制定的,旨在提供一种统一的日期和时间表示方法,以避免不同国家和地区使用不同的格式所造成的混淆。

2024-01-30 22:13:22 302

原创 极简epoch

Unix纪元(Epoch)是指1970年1月1日00:00:00 UTC。这个时间点被选为参考点,用于在Unix系统和许多其他操作系统中表示时间。从那时起,时间被表示为从Unix纪元开始经过的秒数或毫秒数。

2024-01-30 21:58:35 279

原创 极简Odoo

Odoo是一个全面的企业资源规划(ERP)和客户关系管理(CRM)系统,它使用Python作为其后端语言。Odoo的架构包括多个模块,这些模块共同工作,以提供企业所需的多种功能。Odoo的架构主要分为以下几个部分:在Odoo中,Python代码用于定义模型、视图、动作等。以下是一些基本语法示例:定义视图定义动作Odoo代码案例以下是一个简单的Odoo模块代码案例,该模块用于管理图书馆的书籍。

2024-01-30 14:24:27 376

原创 极简pandas中to_json

如果你需要使用自定义的日期时间格式,你可以在将DataFrame转换为JSON之前,先使用Pandas的applymap函数或者方法将日期时间列转换为自定义格式的字符串。# 创建一个包含日期时间数据的DataFrame})# 将日期时间列转换为自定义格式的字符串# 将DataFrame转换为JSON字符串# 输出包含自定义格式日期时间的JSON字符串在这个例子中,我们首先使用将日期时间列转换为格式的字符串,然后再将DataFrame转换为JSON。

2024-01-30 13:30:24 469

原创 极简pandas库get_dummies

是 Pandas 库中用于将分类变量转换为虚拟/指示变量的函数。在统计学中,虚拟变量(或称哑变量)是一种将分类数据转换为可以用于建模的数值数据的方法。每个类别都会被转换为一组新的二元列,其中每个列代表一个类别级别。将分类变量 ‘A’ 和 ‘B’ 转换为虚拟变量,并为每个虚拟列添加了前缀 ‘prefix_A’ 和 ‘prefix_B’。

2024-01-30 10:35:27 433

原创 极简pandas库checknull

在Pandas库中,我们可以定义一个自定义的checknull函数,用于检查一个值是否为缺失值(NaN)。这个函数接受任意数量的位置参数和关键字参数,并返回一个布尔值,指示输入值是否为缺失值。

2024-01-29 13:00:36 365

原创 极简pandas库中apply和transform的区别

apply可以应用于 DataFrame 的行或列,并且可以返回任意形状的结果。transform只能应用于 DataFrame 的列,并且返回一个与原始 DataFrame 形状相同的 DataFrame。apply更灵活,可以用于各种复杂的操作,而transform更适合于数据转换和标准化。在使用这两个方法时,开发者需要根据具体的需求和数据形状来选择合适的方法。

2024-01-29 11:55:42 364

原创 极简typing

Python 是一种动态类型语言,这意味着你不需要在使用变量之前声明其类型。然而,类型注解(Typing)在 Python 3.5 及以后的版本中成为了一个可选的、实验性的特性,在 Python 3.7 中得到了进一步的改进,并在 Python 3.9 中成为了正式的组成部分。类型注解可以帮助开发者理解代码中变量的预期类型,有助于静态类型检查器(如 mypy)进行类型检查,也可以作为文档来帮助其他开发者理解代码。

2024-01-29 11:03:01 788

原创 适配器模式和代理模式的区别

适配器模式和代理模式是两种常用的设计模式,它们在Python中可以通过类和对象来实现。架构:代理模式包括抽象主题(Subject)、真实主题(RealSubject)和代理(Proxy)三个部分。架构:适配器模式包括目标接口(Target)、适配器(Adapter)和适配者(Adaptee)三个部分。内容:代理模式的主要任务是在访问真实主题之前或之后,增加一些额外的处理逻辑,例如权限控制、缓存等。内容:适配器模式的主要任务是将适配者的接口转换为目标接口,使得客户端可以透明地使用适配者的功能。

2024-01-28 21:44:29 563

原创 极简pandas库apply

apply()函数是Pandas中一个非常强大和多用途的工具,它可以用于执行各种复杂的数据操作。通过本文的讲解,我们可以看到.apply()在数据转换、聚合、分组、透视表、数据清洗、元素级操作、逻辑判断、窗口函数、多级索引操作、跨列操作等多种场景中的应用。然而,使用.apply()时也需要注意性能问题,特别是在处理大型数据集时。在可能的情况下,应该优先使用Pandas提供的专门函数和方法,这些通常是经过优化的,执行速度更快。对于复杂的数据处理任务,.apply()提供了一个灵活和强大的解决方案。

2024-01-28 17:48:30 357

原创 极简设计模式

职责链模式:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合。命令模式:将请求封装为一个对象,从而使用户和处理请求的对象解耦。解释器模式:为语言创建解释器,用来解释该语言中的句子。迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露其内部的表示。中介者模式:定义了一个对象,该对象封装了一组对象之间的交互。备忘录模式:允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。观察者模式。

2024-01-27 22:37:36 835

原创 极简pyspark

PySpark 是一个基于 Spark 的 Python 接口,它允许你在 Python 中使用 Spark 的强大功能,如大数据处理、实时数据处理等。PySpark 提供了丰富的 API,包括 DataFrame API 和 RDD API,使得数据处理变得更加高效和便捷。

2024-01-27 19:03:04 329

原创 极简concurrent库

希望这些内容能够帮助你更好地理解和使用Python的库。

2024-01-26 17:52:20 934

原创 极简pandas库json_normalize

是pandas库中用于将嵌套的JSON数据转换为平面表结构的工具。它可以将复杂的JSON数据展开为表格形式,便于进行数据分析和处理。

2024-01-26 13:30:47 367

原创 极简pandas库Index

Pandas 的 Index 对象是用于存储轴标签的数据结构,它有多种子类,包括 Index、MultiIndex、DatetimeIndex、PeriodIndex、CategoricalIndex 和 IntervalIndex,每个子类都有其特定的用途和操作方法。通过这些索引类型,Pandas 能够高效地处理各种数据结构和复杂的数据操作。以上就是对 Pandas 中 Indexes 的详细讲解,包括了一些实际的代码案例。希望这些信息能够帮助你更好地理解和运用 Pandas 的索引功能。

2024-01-26 10:06:17 875

原创 极简pandas库Series

使用自定义索引创建 Seriesprint(s)# 输出:# a 1# b 2# c 3# d 4# e 5通过自定义索引,我们可以更方便地通过标签来访问数据。通过这些特性的介绍,我们可以看到Series是一个非常强大和灵活的数据结构,它提供了广泛的数据处理和分析功能。掌握Series的使用对于深入学习 Pandas 和进行高效的数据分析至关重要。无论是对数据进行分组、聚合、转换,还是处理时间序列数据,Series都能提供强大的支持。

2024-01-25 20:48:48 2194

原创 极简pandas库Time Series

Pandas是一个强大的Python数据分析工具库,它内置了用于处理和分析时间序列数据的模块。这个模块提供了专门用于时间序列处理的类和函数,包括日期范围生成、频率转换、日期偏移量以及时间序列的移动窗口函数等。

2024-01-25 16:08:16 935

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除