自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(653)
  • 资源 (20)
  • 问答 (1)
  • 收藏
  • 关注

原创 描述符(Descriptors)‌

本文介绍了Python描述符的概念与用法。描述符是实现了__get__、__set__或__delete__方法的类,用于自定义类属性的访问行为。文章通过TypedAttribute示例展示了如何用描述符实现类型检查,解耦验证逻辑并提高代码复用性。还区分了数据描述符(实现__set__/__delete__)和非数据描述符(仅__get__)的优先级差异,并建议在需要复杂属性逻辑复用(如ORM字段)时使用描述符,简单场景优先选择@property。描述符是理解Python属性访问机制的关键底层技术。

2026-06-09 10:37:23 244

原创 变量与对象的内存存储关系(引用机制)‌

Python变量与对象的内存存储关系是核心知识点:变量是引用(标签),对象是实体(堆内存存储)。关键特性包括:1)动态类型,变量无类型而对象有类型;2)不可变对象(如整数)修改会创建新对象,可变对象(如列表)修改会影响所有引用;3)内存管理通过引用计数和垃圾回收实现。常见陷阱涉及函数参数传递(对象引用传递)和默认参数(避免可变对象作默认值)。理解这一机制对编写高效、正确的Python代码至关重要。

2026-06-04 09:32:46 514

原创 装饰器decoraor常用实例

Python 中的‌装饰器(Decorator)‌是一种强大的高级特性,它允许开发者在‌不修改原有函数或类代码‌的情况下,动态地为其添加新的功能。装饰器本质上是一个‌高阶函数‌,它接收一个函数作为参数,并返回一个新的函数。这种“无侵入式增强”的思想使得代码更加简洁、优雅且易于复用,常用于日志记录、性能监控、权限验证、缓存等场景。

2026-06-04 09:08:59 72

原创 函数缓存lru_cache

Python的functools.lru_cache装饰器能快速为函数添加缓存功能,大幅提升重复计算的性能。它通过哈希表和双向链表实现O(1)时间复杂度的缓存操作,自动缓存函数结果并在相同参数调用时直接返回。使用时只需添加@lru_cache装饰器,支持设置缓存大小(maxsize)、清空缓存(cache_clear)和查看缓存信息(cache_info)。特别适用于递归计算、重复调用的昂贵计算等场景,但要求参数必须是可哈希类型。注意标准实现非线程安全,且maxsize=None会禁用LRU机制导致内存无限

2026-05-28 09:11:31 395

原创 WebSocket

WebSocket是一种基于TCP的全双工通信协议,突破了HTTP半双工的限制,支持服务器主动推送数据,适用于实时通讯、在线游戏等场景。其核心优势包括低延迟、双向通信和高效数据传输。通过HTTP协议升级握手建立连接后,使用轻量级数据帧传输信息。相比HTTP,WebSocket具有持久连接和更低开销的特点,但需通过Ping/Pong机制维持连接活性。开发时需注意心跳实现和协议选择,主流语言均有成熟的WebSocket库支持。该技术已成为现代实时Web应用的基础设施。

2026-05-18 10:05:36 553

原创 python中的websockets简单样例

WebSocket是一种基于TCP的全双工通信协议,支持客户端与服务器之间的实时双向数据传输。与HTTP的请求-响应模式不同,WebSocket建立持久连接后,双方可随时主动推送数据,具有低延迟、高效率的特点。文章通过Python实现的WebSocket服务器示例(使用websockets库)和JavaScript客户端代码,展示了如何建立连接、收发消息及处理连接状态。服务器端采用异步IO处理多客户端连接,客户端通过事件监听实现实时交互。这种技术适用于需要实时更新的应用场景,如聊天系统、实时监控等,相比传统

2026-05-15 16:41:42 316

原创 Python 中的异步编程

Python中的async和await关键字是实现异步编程的核心工具,特别适用于I/O密集型任务。async def定义协程函数,await用于暂停当前任务并等待其他协程完成,事件循环负责调度任务执行。通过asyncio.create_task()或asyncio.gather()可实现真正的并发执行。示例展示了协程的基本用法、并发任务处理以及一个完整的异步爬虫案例,演示了如何高效处理网络请求等异步操作。异步编程能显著提升程序性能,避免多线程的复杂性。

2026-05-14 10:16:33 108 2

原创 套接字Socket编程样例

本文介绍了基于Python的UDP和TCP网络编程实现。UDP部分展示了无连接服务的服务器和客户端GUI应用,包含端口设置、消息收发、日志记录等功能,采用多线程处理并发请求。TCP部分实现了面向连接的通信模型,服务器支持多客户端连接和消息广播,客户端具备连接管理、消息发送和接收功能。两种协议都通过Tkinter构建了图形界面,实现了状态监控、消息记录和错误处理机制。调试结果表明,这两种实现都能有效完成网络通信任务,其中UDP适合简单快速的数据传输,而TCP则提供可靠的连接导向通信。

2026-04-08 11:12:05 116 1

原创 3D渲染中的材质Material与纹理Texture

3D渲染中材质与纹理的关系解析:材质决定物体的光学特性(如反射、透明度),如同衣服的布料;纹理则是表面图案细节,如同衣服印花。贴图作为中间媒介,通过UV坐标将纹理映射到模型表面。UV坐标是2D定位系统(U水平/V垂直),将纹理精准"钉"在模型上。常见材质包括金属、塑料等5类,贴图则有基础色、法线等8种类型。三者层级关系为:材质包含贴图,贴图应用纹理,共同实现逼真渲染效果。

2026-01-16 11:11:08 461

原创 添加初始化函数

VC对话框程序初始化函数添加方法:其他窗口需手动添加初始化函数,通过类视图-重写功能实现。使用CTRL+D快捷键可查看和调整窗口控件的TAB顺序。操作步骤包括:1)双击窗口类进入声明区域;2)点击重写图标选择对应函数;3)按CTRL+D显示TAB键顺序。该方法适用于VC++对话框程序的界面元素管理。

2025-11-17 09:56:01 229 1

原创 VC中CListCtrl的报表设置

本文介绍了列表控件(List Control)的高级设置方法,包含四个主要步骤:1)基本设置,包括清空数据、设置为报表视图、设置字体行高和添加列标题;2)数据添加方法,通过InsertItem和SetItemText实现;3)斑马线效果实现,通过自定义绘制事件设置奇偶行不同背景色;4)单元格双击编辑功能,通过创建隐藏的编辑框控件,在双击时定位显示并获取修改内容。这些方法完整演示了如何优化列表控件的显示效果和交互功能。

2025-11-17 08:57:51 456

原创 固定表头可以滚动表格内容的JS代码

这篇文章展示了一个使用HTML、CSS和JavaScript创建的可滚动表格组件的实现方法。主要特点包括:1) 固定高度(200px)和宽度(302px)的表格容器,带有滚动条;2) 斑马纹交替行样式;3) 悬停效果;4) 固定表头;5) 动态生成100行测试数据。CSS部分定义了表格的基础样式和交互效果,JavaScript则用于动态填充表格内容。该组件适合展示大量数据,同时保持页面整洁。

2025-09-19 09:42:45 344

原创 Threejs中物体不出现的问题

Threejs物体不显示的常见原因包括观察位置错误和渲染问题。此外,还存在几个特殊原因:1)Windows和银河麒麟系统对STL文件大小写敏感度不同;2)部件六自由度参数错误可能导致消失;3)网络传输参数错误也会影响显示。建议使用F12调试工具检查网页参数是否正确。这些因素在排查问题时都需特别注意。

2025-07-26 09:50:30 360

原创 典型的空间换时间案例OSMapTbl与OSUnMapTbl

在μC/OS-II实时操作系统中,OSMapTbl和OSUnMapTbl是两个关键的预计算查找表,用于优化任务优先级调度。OSMapTbl是一个位映射表,用于将优先级编号转换为位掩码,以便快速设置或清除OSRdyGrp和OSRdyTbl中的特定位。其表大小为8,元素值为0x01至0x80,对应8个可能的位位置。OSUnMapTbl是一个位反向映射表,用于从字节数据中快速定位最低有效位(LSB)的索引,以查找最高优先级任务。其表大小为256,覆盖所有8位二进制组合。这两种表通过查表法实现O(1)的时间复杂度,

2025-05-17 10:20:37 605

原创 生成器(generator)

生成器通过惰性计算和只存储当前状态的特性,能够显著节约内存,特别适用于处理大数据集和无限序列。这种特性使得生成器在数据处理和流式计算中非常有用。

2025-04-26 10:26:20 418

原创 python中的schedule使用

轻量级周期任务调度,简单易用。

2025-04-16 10:17:44 675 1

原创 hypercorn中使用FastApi

1 安装库2 编写代码3 启动服务4 访问效果关于FastAPI。

2025-04-14 09:53:02 417

原创 异步编程与多线程的本质区别

异步编程的本质是‌单线程内的协作式任务调度‌,通过事件循环和协程机制实现高并发I/O处理,与多线程的‌抢占式并行执行‌存在根本性差异‌35。两者的选择需根据任务类型(I/O密集型 vs CPU密集型)和运行时环境综合判断‌26。# 需要安装:pip install aiohttp"""异步获取单个网页内容""""""并发获取多个网页"""# 使用gather并发执行所有任务urls = [] * 5 # 重复5次,共20个请求。

2025-04-13 11:15:11 689

原创 Python 装饰器(Decorator)详解

‌实现逻辑解耦与复用,是 Python 灵活性和表达力的重要体现。掌握其核心用法后,可显著提升代码的可维护性和扩展性。

2025-04-10 08:31:04 741

原创 python中的语音操作

pip install pyaudio # 用于实时麦克风录音‌:ml-citation{ref="2,4" data="citationList"}pip install vosk # 核心库安装‌:ml-citation{ref="2,4" data="citationList"}下载预训练模型‌,官方模型库:Vosk Models,中文推荐模型:vosk-model-cn-0.22(适用于中文场景)‌。朗读需要安装:pip install pyttsx3。语音操作主要包括两个:朗读和语音识别。

2025-03-28 08:31:40 596

原创 Flask多参数模版使用及其服务器waitress

约定好参数名字,单个名字可以直接使用;多参数使用字典传递;把建好的html文件放到templates目录里面;需要建立目录templates;hello.html内容。

2025-03-17 17:05:13 455

原创 Flask进行WEB开发

Flask 允许你定义路由,使得当用户访问特定 URL 时,Flask 会调用对应的视图函数来处理请求。Flask 允许你定义路由,这样当特定的 URL 被访问时,就会调用相应的函数。:蓝图是 Flask 中的一个组织代码的方式,它允许你将相关的视图函数、模板和静态文件组织在一起,并且可以在多个应用中重用。蓝图是 Flask 中的组织代码的方式。它允许你将相关的视图函数、模板和静态文件组织在一起,并且可以在多个应用中重用。Flask 允许你定义错误处理函数,当特定的错误发生时,这些函数会被调用。

2025-03-17 14:56:00 854

原创 拦截所有异常try/except结构例子

用try/except结构拦截所有可能的错误。

2025-03-13 13:41:27 351

原创 python编写WEB服务器

这里只发送json数据。

2025-03-11 14:52:02 380

原创 PyInstaller打包工具的使用

PyInstaller 是一个将 Python 程序打包成独立执行文件的工具,常用于将 Python 脚本打包为可执行文件。默认情况下,PyInstaller 会生成一个文件夹,其中包含可执行文件和相关的依赖文件。使用此选项后,所有文件会被打包成一个文件。.spec 文件包含了打包过程的配置信息,通常你可以修改 .spec 文件来定制 PyInstaller 的行为。PyInstaller 会生成一个 .spec 文件,它记录了打包时的配置,可以修改该文件来定制打包行为。指定生成的可执行文件所在的目录。

2024-11-18 14:10:06 4453

原创 uiautomation自动操作windows控件

1 首先安装uiautomation。2 给微信“文件传输助手”发送消息。

2024-11-04 15:27:19 833 1

原创 双端队列deque

deque(双端队列)是collections库中的一个类,它是一个、可以在两端进行高效插入和删除操作的数据结构。deque类实现了类似列表的功能,但在处理频繁的首尾插入和删除时更加高效。

2024-11-01 10:41:53 671

原创 Counter对象的使用样例

Counter是一个用于跟踪值出现次数的有序集合。它可以接收一个可迭代对象作为参数,并生成一个字典,其中包含每个元素作为键,其计数作为值。

2024-11-01 10:18:27 557

原创 groupby函数的使用

itertools.groupby 是 Python 标准库 itertools 模块中的一个强大工具,它能够对可迭代对象中的元素进行分组。不同于数据库查询语言中的 GROUP BY 语句 ,groupby 并不会自动对数据进行排序,因此在使用前通常需要先对数据进行预排序,以保证相同元素连续出现,这样才能正确地进行分组。{'孙': ['孙文'], '张': ['张飞'], '李': ['李晓红'], '王': ['王名', '王芳'], '章': ['章程']}2 把姓名字符串按姓氏分组。

2024-10-29 15:27:29 930

原创 高阶函数(Higher-Order Function)

reduce() 函数会对参数序列中元素进行累积。函数将一个两元操作函数作用在序列[x1, x2, x3, ...]上,并将其结果并为一个单一返回值,例如用于求和或求积。高阶函数在 Python 中非常强大和灵活,它们允许你将函数作为参数传递给其他函数,或者从函数中返回函数。虽然 lambda 表达式本身不是一个高阶函数,但它经常与高阶函数一起使用,提供简洁的函数定义。map() 函数接受一个函数和一个可迭代对象(如列表或元组)作为输入,将传入的函数依次作用到序列的每个元素上,并返回一个新的迭代器。

2024-09-25 10:02:21 792 1

原创 max与min函数的使用

max与min都有一个key关键字,可以进行更复杂的操作。比如:返回长度最长的字符串序列等。max函数是返回序列中的最大值;min函数是返回序列中的最小值;

2024-09-18 14:17:41 481

原创 all与any函数

any用于判定至少有一个对象满足调节;all用于判定所有对象满足条件;

2024-09-18 13:56:32 237

原创 python中的排序函数sorted

在python中对列表进行排序是使用很频繁的操作,一般采用sorted函数或自带的成员函数sort就可以搞定。但是,sorted函数本身功能非常强大,可以对字符串长度、字典键值进行排序。使用下面的代码,可以更进一步的学习掌握。

2024-09-18 11:10:37 562

原创 classmethod的使用

python中存在三种方法,分别为常规方法(定义中传入self)、@classmethod修饰的类方法、@staticmethod修饰的静态方法。一常规方法定义时需要传入self参数,与类的实例绑定。也就是说调用时需要先实例化类classA为实例A,然后该实例A才拥有方法,通过A.f()的方式来调用。不能直接用类classA.f()的方式来调用。二用@classmethod修饰的方法需要传入cls参数(代表当前类),表示该方法与类绑定(不是实例)

2024-09-03 10:10:33 992

原创 常量池和对象池

需要注意的是,对于一些简单的对象,如整数、浮点数、字符串等等,如果它们的值相同,它们的地址也可能相同,这是因为Python的常量池机制会共享一些简单对象的内存地址。例如,当程序创建一个长度为1的字符串对象s时,Python的解释器会先检查对象池中是否已经存在一个值为s的字符串对象,如果存在,则直接返回该对象;例如,如果程序需要使用多个整数1来做计算,那么Python只需要在常量池中检查是否存在整数1的对象,如果已经存在,则直接引用这个对象,而不是创建新的整数1对象。这可以减少内存的使用,并加速程序的执行。

2024-08-25 15:29:27 598

原创 sklearn中的线性回归

w 被统称为 模型的 参数,其中 w0 被称为截距(intercept),w1~wn 被称为 回归系数(regression coefficient)。这个表达式和 y=az+b 是同样的性质。其中 y 是目标变量,也就是 标签。xi1~xin 是样本 i 上的特征 不同特征。

2024-08-24 16:35:38 609

原创 Threejs中的光照使用

/ 光线照射的目标点。在 Three.js 中,光照模型是创建真实感和氛围感三维场景的关键要素之一。需要根据自己的实际需求进行调节,直到满意为止。:像一个发光的点,向各个方向均匀发光。:模拟无限远处的光源,光线平行。:具有方向性和锥形照射范围。

2024-08-21 16:37:05 596

原创 DataFrame的常见操作

数据源data.json。相关python代码。

2024-05-07 17:24:01 246

原创 pyinstaller打包工具

打包过程中,PyInstaller会自动检测并分析Python代码及其导入的模块,将它们打包到一个可执行文件中,并生成额外的支持文件和目录。PyInstaller支持多个操作系统平台(如Windows、Linux、Mac OS X等),可以根据不同的平台选择合适的打包方式和选项。总之,PyInstaller是一个强大的工具,可以方便地将Python程序打包成可执行文件,以便于在没有安装Python的环境中运行或作为一个独立文件方便传递和管理。选项指定生成的可执行文件的输出目录,使用。

2024-04-29 10:35:54 430

原创 去重并保持原来的顺序OrderedDict

模块中的这些数据类型可以帮助你更高效地处理数据,并提供更简洁、更易于理解的代码。: 这是一个字典子类,它提供了一个工厂函数,用于为字典提供默认值。当访问字典中不存在的键时,它会调用工厂函数来提供默认值。利用python自带的库collections中的OrderedDict可以顺利实现去重并保留顺序。d[0]不存在,如果使用普通字典则会报错,使用默认值字典则不会报错。python中集合set可以去重,但是并不保留顺序。另外,collections还有默认值字典可以使用。完美实现去重并保留顺序。

2024-04-23 10:14:58 755

python数据处理样例程序

包括python的list/tuple/set/dict等;类定义和类运算符重载,以及自定义类型的去重处理;Word/Excel操作,以及相关的自动文档产生;pandas、matplotlib、numpy等;数据库包括MSSQL 、SQLITE等的增删改查操作。

2022-10-27

Vega Prime开发环境配置

使用 VS2003中的 VC7.10加上Vega Prime开发环境配置

2010-04-02

opencv230+vs2008

完整的opencv230文件,外加配置说明

2011-08-09

Qt多对话框框架设计

利用QMdiArea实现多对话框程序; 利用TabWidget实现多对话程序; 比较实用的应用程序框架。

2016-05-13

LabVIEW8.2串口读写 串口驱动 虚拟串口

包含LabVIEW8.2串口读写程序及其数据转换, 另外还包括:NI串口驱动和虚拟串口软件。 是调试串口的全套工具。

2014-05-27

文件方式串口收发多线程样例

以文件方式操作串口,以线程方式进行,可以适应X32和X64

2017-07-19

VC下网络通讯样例,包含UDP和WEBserver

VC下网络通讯样例,包含UDP和WEBserver UDP包含服务器和客户端

2017-07-19

带闪烁和右键菜单功能的VC6托盘程序

带闪烁和右键菜单功能的VC6托盘程序

2012-05-08

MFCtest4.zip

直接用代码操作flt文件,在三维模型中直接操作DOF/LOD/GROUP等。Open Flight API程序开发

2020-01-08

VC获取本机名称IP地址MAC地址

VC获取本机名称IP地址MAC地址

2012-03-16

VP纹理动画实现

MFC下,VP2+VS2003纹理动画,调试通过。

2014-10-30

DataSetXML通讯录

利用DataSet 操作XML 实现通讯录的 添加 删除 修改 分页功能。

2015-03-19

键盘钩子程序

键盘钩子程序VC6的例子,同时与自己的博客内容挂钩,学些HOOK的好例子

2013-10-03

VP5线程例子

VS2008下,基于MFC的对话框程序中使用VP5,虚拟现实。

2013-10-23

VC下利用ADO操作数据库类和文件目录操作类

VC下利用ADO操作数据库类和文件目录操作类

2017-07-19

VC.NET使用 tabControl

VC.NET使用 tabControl 使用tabcontrol

2010-04-02

SocketTransferFile.zip

使用套接字实现文件的发送和接收,在VS2008下调试通过。 Socket套接字编程,使用不同的发送缓冲区来测试发送速度。 一个机器上可以达到112M Bps。

2019-05-10

网络安全开发包详解代码

libpcap;winpcap;libnet;libdnet;libnids 最详细最多的网络开发包详解。

2012-03-20

函数对象PPT

讲解函数对象

2017-03-21

asp.net操作XML

asp.net中,利用XML实现通讯录,实现了通讯录的遍历、增减、删除功能。(vs2010)

2015-03-06

Qt应用程序框架涉及

利用QT的MDI结构和TabWidget结构,实现多对话框框架结构。 简单实用,主要涉及工具栏操作、MdiArea操作,TabWidget操作。

2016-05-13

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

TA关注的人

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