【Python】
文章平均质量分 57
Python学习
越甲八千
置身其中,全力以赴
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python 判断两个文件是否二进制相同的方法
本文介绍了两种Python判断文件二进制相同的方法:1)直接分块比较法,通过逐块读取比较内容,发现差异立即返回,效率高且内存占用小;2)哈希值比较法,计算文件MD5哈希后比较,适合需要保存比较结果或文件不在同位置的场景。两种方法各有优势,前者适合快速比较可能有差异的文件,后者便于多次比较和结果保存。对于大文件两者效率相近,根据具体需求选择合适方法即可。原创 2025-09-23 10:01:04 · 276 阅读 · 0 评论 -
python遇到异常流程
Python中异常处理与程序退出的关系:未捕获的异常会导致程序非零退出(状态码1),打印错误信息;try-except捕获异常后程序继续执行(状态码0);可通过sys.exit(n)主动控制退出状态码。处理异常能避免程序意外终止,而未处理异常会立即终止程序。原创 2025-08-18 22:41:25 · 375 阅读 · 0 评论 -
python列表 append externd
Python中,append()和extend()是列表的两种添加元素方法,核心区别在于:append()将参数作为单个元素整体添加,而extend()会拆分可迭代对象的元素逐个添加。元组作为不可变序列,通过+拼接实现类似功能(生成新元组)。字典则通过键赋值添加单个键值对,使用update()方法合并多个键值对。这两种数据结构因自身特性(不可变性/键值对结构)没有与列表完全相同的append/extend方法,但都能通过特定语法实现类似操作。选择时需注意元组操作会生成新对象,字典操作会直接修改原字典。原创 2025-08-15 00:24:36 · 710 阅读 · 0 评论 -
PLC寄存器写入验证工具
PLC寄存器写入验证工具是一款基于PyQt5和modbus_tk开发的GUI应用,用于通过Modbus TCP协议与PLC设备通信。该工具提供简洁界面,支持连接PLC、写入寄存器数据并自动验证结果,适用于工业自动化调试。主要功能包括:建立Modbus TCP连接、指定寄存器地址和写入值、后台线程执行网络操作避免UI卡顿、实时状态显示和错误提示。使用前需安装Python 3.x、PyQt5和modbus_tk库,操作时需确保PLC设备网络配置正确。该工具采用多线程设计,通过信号槽机制实现线程间通信,提供完善的原创 2025-08-15 00:18:41 · 938 阅读 · 0 评论 -
python 双下划线开头函数
Python中双下划线开头的方法有特殊用途:1) 魔术方法(如__init__、__str__等)用于实现类的内置行为;2) __method形式的私有方法通过名称修饰(如_Classname__method)避免子类命名冲突。单下划线方法(如_method)仅为约定上的私有,而双下划线会实际修改名称。特殊方法不应与私有方法混淆,合理使用这些机制可使代码更规范。原创 2025-07-14 21:25:57 · 330 阅读 · 0 评论 -
python GIL
Python全局解释器锁(GIL)是CPython的核心机制,它限制同一时间仅有一个线程执行字节码,影响多线程性能。GIL确保了内存管理的线程安全并简化了实现,但对CPU密集型任务造成性能瓶颈。可通过多进程或C扩展绕过GIL限制。虽然GIL存在争议,但其线程安全优势使移除计划暂未实现。开发者需根据任务类型(I/O或CPU密集型)选择多线程、多进程或异步编程等方案。其他Python解释器如Jython/IronPython无GIL,但主流CPython仍保留该机制。原创 2025-07-03 20:41:00 · 710 阅读 · 0 评论 -
python线程常见问题
Python线程与GIL问题摘要: Python多线程受全局解释器锁(GIL)限制,同一时间仅一个线程执行字节码,导致CPU密集型任务无法并行加速,建议改用多进程(multiprocessing)。线程安全问题可通过锁(Lock)或线程安全队列(Queue)解决;死锁需规范锁的获取顺序。I/O密集型任务仍适用多线程(GIL会在I/O等待时释放)。线程间通信推荐Queue或Event,异常需内部捕获再传递。资源管理用with/try-finally,复杂场景建议线程池(ThreadPoolExecutor)。原创 2025-07-03 18:26:59 · 787 阅读 · 0 评论 -
python垃圾回收机制
Python采用引用计数+分代回收+标记清除的混合垃圾回收机制。引用计数实时跟踪对象引用数,为0时立即回收;分代回收将对象分为三代(0/1/2),按存活时间差异化处理;标记清除专门解决循环引用问题。另通过小整数池、字符串驻留等缓存优化性能。开发中应避免循环引用,可用gc模块手动控制回收。相比Java的分代回收和Go的三色标记,Python机制在实时性与内存安全间取得平衡。原创 2025-07-02 16:05:15 · 979 阅读 · 0 评论 -
python 下划线_汇总
本文详细总结了Python中下划线_的多种用途和约定。单下划线_常用于临时变量、交互式解释器结果、国际化翻译函数和模块导入控制;_var作为弱私有变量/方法的约定;__var实现名称修饰的强私有属性;__var__用于魔法方法和内置属性。文章还介绍了组合应用场景和对比表格,并强调了遵循社区约定和正确使用下划线的重要性,以提升代码可读性和安全性。原创 2025-07-02 11:13:28 · 391 阅读 · 0 评论 -
python 继承
Python多重继承中的方法解析顺序(MRO)由C3算法决定,遵循深度优先、从左到右和单调性原则。当子类继承多个父类时,同名方法的调用顺序可通过ClassName.mro()查看。解决冲突方法包括:显式指定父类方法、使用super()跳过某些类或重构继承结构。钻石继承问题中,MRO会确保公共基类只被访问一次。最佳实践建议使用组合替代继承、Mixin模式,并保持继承层次扁平。合理利用MRO机制能有效处理方法冲突,提高代码可维护性。原创 2025-07-01 22:09:29 · 355 阅读 · 0 评论 -
python下划线开头函数总结
Python中的双下划线命名有三种用途:1)魔法方法(如__init__)实现特殊行为;2)私有成员通过名称修饰(如__method变成_类名__method)实现封装;3)与单下划线_method的弱私有约定相区别。双下划线用于重要封装和内置操作,而单下划线仅作约定提示。合理使用这些命名规则能提升代码可读性和维护性。原创 2025-07-01 21:04:54 · 720 阅读 · 0 评论 -
python __doc__
Python的__doc__属性用于存储模块、类或函数的文档字符串(docstring),提供代码自描述功能。文档字符串位于对象开头,用三引号定义,可通过对象.__doc__访问。其核心作用包括:提供交互式帮助(如help())、支持自动文档生成工具、实现运行时自省。文档字符串可动态修改,推荐遵循PEP 257规范,区分单行简明描述和多行详细说明(含参数、返回值等)。相比Java/Javadoc和C++/Doxygen,Python的文档机制更直接,无需额外工具即可提取说明信息。合理使用__doc__能显著原创 2025-07-01 21:03:15 · 416 阅读 · 0 评论 -
python 调用C/C++动态库
Python通过ctypes模块调用C/C++动态库(DLL/SO),实现高效系统交互。主要步骤包括:动态库加载(CDLL/WinDLL)、函数参数/返回值类型声明、数据类型映射。实践案例涵盖:简单函数调用(如加法)、结构体处理(传递/返回)、数组指针操作(求和/修改)以及C++类封装(extern "C"接口)。典型问题包括路径错误、类型不匹配等,需确保库文件位置正确并严格定义数据类型映射。该方法广泛应用于性能敏感场景,如硬件控制和高性能计算。原创 2025-07-01 20:49:15 · 912 阅读 · 0 评论 -
Pyqt 所有的数据类型
本文系统总结了PyQt框架中的数据类型体系,涵盖基本类型、容器类型、日期时间、几何图形等类别,并分析了PyQt与Python原生类型的映射关系。详细对比了Qt特有类型(如QString、QList)与Python类型的异同,介绍了QVariant等特殊类型的应用场景,同时提供了类型转换规则和性能优化建议。通过模块化分类和实用示例,帮助开发者快速掌握PyQt数据类型的选择与使用方法,提高GUI开发效率和数据处理的可靠性。原创 2025-06-25 22:56:51 · 899 阅读 · 0 评论 -
pyqt setContentsMargins
本文介绍了PyQt布局中setContentsMargins方法的用法。该方法通过设置左、上、右、下四个像素值来调整布局内边距,示例代码sidebar_layout.setContentsMargins(10,20,10,20)表示左右边距10px,上下边距20px。合理的内边距设置能提升界面美观度,避免内容紧贴边界,增强可读性和视觉舒适度。文中还对比了有无边距的显示效果,并说明这是现代UI设计的常见做法,同时提供了统一设置和获取边距的方法。原创 2025-06-24 23:17:14 · 403 阅读 · 0 评论 -
pyqt多界面
本文介绍了一个基于PyQt5的多界面切换程序,采用侧边栏导航和QStackedWidget管理多个界面。程序主要特点包括:1) 左侧固定侧边栏包含可悬停、高亮显示的导航按钮;2) 主内容区通过堆叠窗口实现界面切换;3) 采用CSS美化UI,深色侧边栏与浅色主区域形成对比,支持中文显示;4) 结构设计具有良好扩展性,可轻松添加新界面。程序默认显示首页,点击不同按钮时主区域会切换显示对应界面,当前选中按钮会变为绿色背景。文章还提供了扩展建议,如添加真实功能控件、优化导航逻辑、增强视觉效果等,并包含界面截图和核心原创 2025-06-24 23:15:37 · 717 阅读 · 0 评论 -
pyqt小问题汇总
PyCharm创建项目时可选择继承全局Python包或创建独立虚拟环境。继承全局包允许项目使用已安装的包,而虚拟环境则隔离项目依赖,避免冲突。PyQt的setGeometry(x,y,width,height)方法设置控件位置和大小,参数依次为左上角坐标及宽高(像素)。相比resize()和move(),该方法同时控制位置和尺寸。顶级窗口坐标相对屏幕,子控件坐标相对父窗口。建议复杂界面使用布局管理器而非固定坐标。原创 2025-06-24 00:21:56 · 742 阅读 · 0 评论 -
pyqt f-string
Python的f-string(格式化字符串字面值)是Python 3.6引入的高效字符串格式化方式。它以f开头,允许在字符串中直接嵌入变量或表达式(用{}包裹),语法简洁直观。相比传统拼接或str.format(),f-string具有自动类型转换、支持表达式、格式化精度控制等优势。典型应用如拼接时间戳和用户输入的文本,生成格式化的消息输出。f-string还支持添加格式说明符进行对齐、截断等操作,成为Python中最常用的字符串格式化方法。原创 2025-06-23 00:07:12 · 686 阅读 · 0 评论 -
pyqt时间显示格式
Qt的QDateTime.toString()方法中,日期时间格式化需严格区分大小写:大写MM代表月份(1-12),小写mm代表分钟(0-59)。混淆会导致错误,如yyyy-mm-dd会把月份显示为分钟。常用格式字符包括:yyyy(年)、dd(日)、HH(24小时制)、hh(12小时制)等。这种设计避免歧义,如区分Month和Minute。正确格式如"yyyy-MM-dd HH:mm:ss.zzz",错误写法会导致数据解析错误。其他语言如Java、Python也有类似规则。原创 2025-06-23 00:00:26 · 790 阅读 · 0 评论 -
pyqt事件过滤器eventFilter
PyQt事件过滤器机制解析 PyQt的eventFilter提供了高效的事件拦截机制,允许在事件到达目标前进行处理。通过installEventFilter方法安装过滤器,在自定义eventFilter函数中可拦截多种事件(如鼠标点击、键盘输入、窗口大小变化等)。其核心特点是:非侵入式设计、运行时可动态调整、支持多控件复用。典型应用场景包括全局快捷键实现、统一事件处理逻辑等。使用时需注意避免过度拦截导致事件流程混乱,建议遵循单一职责原则,保持过滤器逻辑简洁。该机制既能实现复杂交互需求,又能保持代码的可维护性原创 2025-06-21 23:40:25 · 567 阅读 · 0 评论 -
pyqt logger类与界面分开
本文展示了一个将日志类和界面类分离的Python实现方案,包含两个核心文件:logger.py和main_window.py。logger.py定义了一个线程安全的日志记录器类Logger,支持不同级别的日志记录(DEBUG、INFO等),具备文件输出、日志轮转和调用者信息显示功能,并通过信号机制与GUI界面通信。界面类(未完整展示)通过PyQt5构建,将接收并可视化显示日志信息。这种分离设计遵循了单一职责原则,提高了代码的模块化和可维护性,同时实现了日志记录的线程安全性和丰富的功能特性。原创 2025-06-21 22:17:32 · 550 阅读 · 0 评论 -
Pyqt写一个日志类
本文介绍了一个基于PyQt5的线程安全日志记录系统(Logger)及其测试组件(LogTester)。Logger支持5种日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL),每种级别有对应的颜色标识和文本格式。系统提供了完整的日志记录功能,包括:多线程安全保护、日志文件输出(自动轮转)、调用位置追踪、GUI实时显示等。LogTester组件则通过5个不同颜色的按钮(Debug灰色、Info黑色、Warning橙色、Error红色、Critical紫色)方便开发者快速测试各日志级别原创 2025-06-21 00:43:10 · 477 阅读 · 0 评论 -
pyqt 简单条码系统
本文介绍了一个基于PyQt5和pyodbc的生产数据管理系统,主要用于物料绑定和查询操作。系统包含数据库管理、上料绑定、下料查询和日志管理四大功能模块,支持与SQL Server数据库交互。界面采用标签页设计,提供扫码信息录入、数据查询更新等功能,操作流程清晰,按钮状态颜色区分明确(绿色/成功、黄色/执行中、红色/错误)。系统具备自动日志记录、数据校验、事务管理等特性,适合生产环境使用。技术实现上采用面向对象设计,包含数据库连接管理、界面交互和日志系统等组件,确保数据一致性和操作可靠性。原创 2025-06-18 18:13:26 · 1082 阅读 · 0 评论 -
pyqt Logger设计
《Logger类:基于Qt信号槽的全局日志管理方案》摘要:Logger类通过Qt信号槽机制实现跨模块日志集中管理,核心设计包含log_message信号和log()方法。该方案采用解耦设计,支持跨线程安全通信,各模块只需调用log()接口发送日志,主窗口通过连接信号实现统一显示。相比全局变量方案更安全,比继承方案更灵活。文中还提供了日志分级、持久化存储等扩展建议,体现了Qt框架高内聚低耦合的设计优势,是Qt应用推荐的高效日志管理方案。原创 2025-06-18 14:30:58 · 561 阅读 · 0 评论 -
pyqt QMenuBar
本文详细介绍了PyQt5中菜单栏(QMenuBar)的使用方法,包含以下内容: 基本概念:说明菜单栏、菜单、菜单项和子菜单的关系 实现示例:通过代码展示如何创建包含多级菜单的完整菜单栏系统 关键功能:包括文件操作(新建/打开/保存)、编辑功能(撤销/复制/粘贴)和格式设置(字体/颜色) 交互设计:为菜单项添加快捷键、状态提示和事件处理 文章提供了一个可直接运行的示例,完整展示了菜单栏从创建到功能绑定的全过程,帮助开发者快速掌握PyQt5菜单栏的实现技术。原创 2025-06-17 23:39:57 · 715 阅读 · 0 评论 -
QMainWindow、QDialog 和 QWidget区别
PyQt5中的三种核心窗口类型对比: QMainWindow:主应用程序框架,包含菜单栏、工具栏和状态栏,适合复杂应用界面(如文本编辑器) QDialog:对话框窗口,支持模态/非模态交互,用于临时操作(如设置窗口) QWidget:基础容器组件,无预设布局,适合自定义控件或子组件 选择依据:主界面用QMainWindow,临时交互用QDialog,自定义组件用QWidget。三者分别对应完整应用框架、用户交互和灵活布局的不同需求。原创 2025-06-13 23:06:56 · 1185 阅读 · 0 评论 -
PEP 8: E302 expected 2 blank lines, found 0
摘要:PEP 8 规范中的 E302 错误表示代码中缺少所需的空行分隔。本文解析了该错误的具体含义(函数/类定义间需2行空行),提供了错误示例及其修复方案(添加规定空行)。同时介绍了自动化修复工具(black/autopep8/IDE插件)和最佳实践建议,帮助开发者快速解决代码风格问题并保持规范的代码格式。原创 2025-06-12 22:28:25 · 641 阅读 · 0 评论 -
QCoreApplication QApplication
PyQt5中QCoreApplication.exec()和QApplication.exec()都用于启动事件循环,但应用场景不同。前者适用于无GUI的核心程序(如命令行工具),仅处理信号槽、定时器等非图形事件;后者则用于GUI应用,支持窗口交互等图形事件。两者继承关系明确,QApplication是QCoreApplication的子类。开发时需根据程序类型选择:非图形程序使用QCoreApplication.exec()减少资源消耗,图形界面必须使用QApplication.exec()。两种方法均可原创 2025-06-12 20:42:59 · 676 阅读 · 0 评论 -
pyqt tab contral
本文介绍了一个使用PyQt5构建的标签页控件示例程序。该程序展示了QTabWidget的多种应用场景,包括欢迎页、用户信息表单、数据表格和文本编辑器。程序采用垂直布局和分割器(QSplitter)设计,上方为标签页区域,下方为日志显示区。欢迎页提供程序简介和标签页操作按钮;用户信息页演示表单输入功能;数据展示页实现表格数据管理;文本编辑页支持多行文本处理。每个标签页都配有相应功能按钮,如添加/删除标签页、保存表单数据等。程序通过日志区域记录操作信息,帮助用户理解控件交互过程。原创 2025-06-09 16:54:02 · 388 阅读 · 0 评论 -
pyqt SQL Server 数据库查询-优化2
2、增加删除表里数据功能。1、增加导出数据功能。原创 2025-04-02 10:29:04 · 560 阅读 · 0 评论 -
pyqt SQL Server 数据库查询-优化
SQL Server数据库查询工具” 是一款基于Python和PyQt6开发的应用程序,旨在为用户提供便捷的SQL Server数据库管理与查询功能。该工具允许用户连接至SQL Server数据库,浏览数据库中的表结构,执行自定义查询,并以直观的表格形式展示查询结果。同时,工具具备安全防护机制,防止用户执行危险的数据库操作,如删除表或数据库。原创 2025-03-26 08:57:45 · 1254 阅读 · 0 评论 -
python filter() 和 reduce()函数
filter()函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,该迭代器包含原序列中符合条件的元素。reduce()函数用于对序列中的元素进行累积操作,它会将序列中的元素依次进行二元运算,最终得到一个单一的结果。需要注意的是,reduce()函数在 Python 2 中是内置函数,在 Python 3 中被移到了functools模块中。filter()函数主要用于过滤序列中的元素,根据条件筛选出符合要求的元素。reduce()原创 2025-03-24 21:45:07 · 437 阅读 · 0 评论 -
python 中match...case 和 C switch case区别
语句在语法和功能上都更加灵活强大,能够处理复杂的匹配需求,而传统的。在 Python 3.10 及以后的版本中引入了。语句则相对简单,主要用于常量值的比较。语句有相似之处,但也存在不少区别,语句,它和其他编程语言里的。综上所述,Python 的。原创 2025-03-24 20:20:06 · 485 阅读 · 0 评论 -
IO模型种类
在计算机编程和操作系统领域,I/O(输入/输出)模型是处理输入输出操作的不同方式,主要用于解决应用程序如何与外部设备(如磁盘、网络等)进行数据交互的问题。这些 I/O 模型各有优缺点,在不同的应用场景中可以选择合适的模型来提高程序的性能和效率。原创 2025-03-24 20:07:36 · 1007 阅读 · 0 评论 -
pyqt SQL Server 数据库查询
本项目旨在开发一个基于 Python 和 PyQt6 的数据库查询工具,该工具能够连接到 SQL Server 数据库,显示数据库中的表名,支持用户输入 SQL 查询语句进行数据查询,并将查询结果展示在表格中。同时,为了提升用户体验,对界面进行了一系列优化,包括调整控件大小、设置选中项颜色、放大查询按钮以及改变查询输入区域背景颜色等。通过本项目的开发,我们实现了一个简单易用的 SQL Server 数据库查询工具,同时对界面进行了优化,提升了用户体验。原创 2025-03-24 16:40:35 · 1540 阅读 · 0 评论 -
python关键字汇总
【代码】python关键字汇总。原创 2025-03-21 21:37:14 · 531 阅读 · 0 评论 -
python中所有内置类型
在 Python 中,数据类型可分为内置数据类型和用户自定义数据类型。内置数据类型是 Python 解释器直接支持的类型。以上代码详细展示了 Python 中各种内置数据类型的定义和类型检查。原创 2025-03-21 20:38:44 · 481 阅读 · 0 评论 -
python播放文字音频
python播放文字音频。原创 2024-12-13 16:33:48 · 205 阅读 · 0 评论 -
用python写一个能在笔记本电脑实时录音和播放的软件
用python写一个能在笔记本电脑实时录音和播放的软件。原创 2024-12-13 16:24:38 · 315 阅读 · 0 评论 -
pythonGPIB读写稳压源程控电源
现有的工具是NI 的NIMAX , 网上大把的NIMAX的操作介绍。原创 2024-12-11 10:13:16 · 419 阅读 · 0 评论
分享