自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python方法解析顺序(MRO)

Python的方法解析顺序(Method Resolution Order, MRO)决定了在多继承情况下,Python如何搜索方法和属性。Python 3.x中所有类都是新式类(继承自object),使用C3线性化算法确定MRO。super()函数的行为依赖于MRO,它会按照MRO顺序查找下一个类的方法。MRO确保了Python多继承的一致性和可预测性,是Python面向对象。结果:D → B → C → A → object。经典类的MRO是:D → B → A → C。然后取A(在CA的尾部,跳过)

2025-10-24 14:20:09 356

原创 python文件打包成exe文件运行报错

pyinstaller --hidden-import=模块名 your_script.py。使用auto-py-to-exe(PyInstaller的GUI版本)检查打包日志:PyInstaller会在dist目录生成日志文件。这会将所有输出(包括错误)重定向到output.txt文件。原因:某些杀毒软件会将打包的EXE误认为病毒。将EXE文件添加到杀毒软件的白名单。原因:EXE运行时工作目录变。使用PyInstaller。脚本打包成EXE文件后运。可以方便地设置各种参数。使用命令行运行EXE。

2025-10-24 14:19:10 640

原创 Python属性访问拦截

_getattribute__(self, name):访问任何属性时都会调用(包括存在的属性)__getattr__只在属性不存在时调用,而__getattribute__对所有属性访问都调用。print(f"设置属性 {name} = {value}")print(f"访问不存在的属性: {name}")print(f"访问属性: {name}")print(f"删除属性: {name}")print("获取属性")print("设置属性")print("删除属性")print("设置x")

2025-10-24 14:18:11 766

原创 Python多重继承的方法解析顺序(MRO)

输出: (<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>)在这个例子中,Python会按照D → B → C → A的顺序查找do_something方法。了方法解析的顺序是确定且一致的,避免了传统多重继承可能带来的歧义问题。避免设计过于复杂的多重继承结构,这可能导致"菱形继承"问题。从左到右顺序:在类定义中,先列出的父类优先于后列出的父类。

2025-10-24 14:17:11 1345

原创 Python元类的构造过程

元类(Metaclass)是Python中用于创建类的类,理解元类的构造过程对于掌握Python的深层机制非常重要。而创建这些类对象的类就是元类。默认情况下,Python中的类都。理解元类的构造过程可以帮助开发者更好地控制类的创建行为,实现更高级的Python编程模式。调用元类的__prepare__方法(如果存在)来创建类命名空间的初始字典。收集类属性:首先收集类命名空间中定义的所有属性(包括方法和类变量)__init__: 在类对象创建后调用,用于初始化类对象。调用元类的__new__方法创建类对象。

2025-10-24 14:16:12 393

原创 模板编译期排序算法

重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。

2025-10-23 12:36:53 1361

原创 C++中的装饰器模式

重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。

2025-10-23 12:36:22 508

原创 为你的Python脚本添加图形界面(GUI)

python# 创建基类# 定义一对多关系# 定义多对一关系# 定义多对多关系(通过关联表)# 关联表(用于多对多关系)SQLAlchemy ORM提供了强大而灵活的数据库操作方式,通过本文的介绍,您应该能够:安装和配置SQLAlchemy定义数据模型和关系执行基本的CRUD操作构建复杂查询管理数据库事务遵循最佳实践SQLAlchemy还有更多高级特性,如混合属性、事件监听、自定义查询等,值得进一步探索学习。

2025-10-23 12:35:52 516

原创 分布式缓存系统实现

重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。

2025-10-23 12:35:21 630

原创 代码性能剖析工具

重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。

2025-10-23 12:34:50 713

原创 编译器优化屏障使用

重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。

2025-10-22 19:22:59 1550

原创 使用Docker容器化你的Python应用

python# 创建基类# 定义一对多关系# 定义多对一关系# 定义多对多关系(通过关联表)# 关联表(用于多对多关系)SQLAlchemy ORM提供了强大而灵活的数据库操作方式,通过本文的介绍,您应该能够:安装和配置SQLAlchemy定义数据模型和关系执行基本的CRUD操作构建复杂查询管理数据库事务遵循最佳实践SQLAlchemy还有更多高级特性,如混合属性、事件监听、自定义查询等,值得进一步探索学习。

2025-10-22 19:22:27 656

原创 自定义内存检测工具

重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。

2025-10-22 19:21:57 701

原创 Python Web爬虫入门:使用Requests和BeautifulSoup

python# 创建基类# 定义一对多关系# 定义多对一关系# 定义多对多关系(通过关联表)# 关联表(用于多对多关系)SQLAlchemy ORM提供了强大而灵活的数据库操作方式,通过本文的介绍,您应该能够:安装和配置SQLAlchemy定义数据模型和关系执行基本的CRUD操作构建复杂查询管理数据库事务遵循最佳实践SQLAlchemy还有更多高级特性,如混合属性、事件监听、自定义查询等,值得进一步探索学习。

2025-10-22 19:21:26 659

原创 C++中的访问者模式变体

重新排列范围,使得指定位置的元素等于排序后的元素,并且左边的元素都不大于它,右边的元素都不小于它。算法的原理是 “覆盖” 要删除的元素,将保留的元素移到前面,返回新的逻辑尾迭代器,但。对范围内的每个元素应用一个函数,并将结果存储在另一个范围内。移除范围内连续的重复元素,返回新的逻辑结尾迭代器。旋转范围内的元素,使中间元素成为新的第一个元素。这些算法不会改变它们所操作的容器中的元素。这些算法会修改它们所操作的容器中的元素。同时返回范围内的最小和最大元素的迭代器。返回范围内的最小/最大元素的迭代器。

2025-10-22 19:20:55 624

空空如也

空空如也

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

TA关注的人

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