自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hanniel的博客

IT小白的日常

  • 博客(38)
  • 收藏
  • 关注

原创 Python 元类(下):进阶与实战建议

能力方法何时调用控制命名空间类体执行前创建类__new__类体执行后初始化类__init__类创建完成后拦截实例化__call__Foo()时自定义 isinstance调用时绝大多数时候你用不到它们。但当你看到 Django、SQLAlchemy 这些框架的魔法代码时,你会知道它们在做什么——它们只是在type上包了一层,拦截了类的创建过程。仅此而已。

2026-05-30 23:37:01 16

原创 Python 元类(中):拦截类的创建

这篇文章摘要(148字): 本文介绍了Python元类的核心概念和实战应用。元类是继承type的类,通过重写__new__方法拦截类创建过程。文章演示了四个实用场景:1) SimpleMeta元类打印类创建信息;2) AutoAttrMeta自动为类添加version属性;3) LowercaseMeta强制类属性名小写;4) SingletonMeta实现单例模式;5) PluginMeta自动注册插件类。关键点在于元类能修改类创建行为(__new__)或实例化过程(__call__),适用于框架开发、代

2026-05-29 00:02:08 398

原创 Python 元类(上):类也是对象

本文揭示了Python中类的本质——类本身也是对象,由type创建。通过实验展示了type()不仅能检查类型,还能动态创建类。文章剖析了class语句背后的执行机制:Python会查找元类参数,调用type.__new__创建类对象,并用type.__init__初始化。文中还对比了Python 2和3在元类语法上的差异,强调Python 3应使用metaclass=语法。理解这些底层机制有助于掌握元类概念,为理解Django等框架的类魔法奠定基础。

2026-05-28 06:30:00 304

原创 一文读懂C++结构体内存对齐

摘要: 结构体内存对齐是C/C++中优化CPU访问效率的底层机制。CPU按固定字长读取内存,未对齐的数据会导致多次访问或崩溃。编译器通过填充字节确保成员起始地址是其大小的整数倍,结构体总大小为最大对齐数的整数倍。成员顺序影响内存占用,降序排列可减少填充。跨平台时需注意对齐差异,避免隐式依赖布局。可用#pragma pack强制紧凑布局,或用alignas指定对齐。静态断言可验证关键结构体布局,确保稳定性。对齐机制以空间换时间,合理优化可提升性能与内存效率。

2026-05-27 01:15:47 342

原创 dataclass 由浅入深完全指南

Python 3.7引入的dataclasses模块通过装饰器自动生成样板代码,极大简化了数据类的创建。传统方式需要手动编写__init__、__repr__等方法,而使用@dataclass只需定义字段即可自动生成这些方法。文章介绍了基础用法,包括字段定义、默认值设置,以及使用field()函数进行精细控制。特别强调了处理可变默认值时需使用default_factory避免共享引用问题。此外,还讲解了@dataclass装饰器的参数配置,如开启排序功能等。dataclasses让Python数据类开发更简

2026-05-23 00:35:28 373

原创 Python __slots__ 入门指南

Python中的__slots__是一个优化内存和限制属性的特殊类属性。它通过为实例属性预留固定空间,取代默认的__dict__字典,从而显著减少内存占用(测试显示10万个实例可节省约10MB内存)。使用__slots__后,实例只能拥有预先声明的属性,避免了意外属性创建,并略微提升访问速度。在继承场景下需注意:子类若不定义__slots__会恢复__dict__特性;多重继承时只能有一个父类包含非空__slots__。该特性适合处理大量数据对象,但会牺牲动态灵活性。

2026-05-22 00:23:39 384

原创 别被configparser坑了!Python配置库避坑指南

这篇文章揭露了Python中configparser模块处理INI配置文件的9个常见陷阱,包括大小写转换、重复键报错、默认节干扰等问题。作者通过实际代码演示了每个问题的表现和解决方案,例如使用optionxform = str保持键名原样、正确处理布尔值转换等。文章特别强调了新老版本间的差异,并提供了兼容性建议,帮助开发者避免配置解析时的常见错误,提高代码健壮性。

2026-05-14 12:00:00 342

原创 C++ 类型别名新手入门,看完直接用

本文介绍了C++中类型别名的使用方法,主要对比了传统的typedef和现代的using两种方式。类型别名可以简化复杂类型名,提高代码可读性。typedef语法为"typedef 原类型 别名",但存在不支持模板别名和语法反人类两大缺陷。C++11引入的using语法"using 别名=原类型"更直观,完美支持模板别名,且与auto、decltype配合更方便。文章还介绍了类型别名在跨平台开发和STL迭代器中的应用,并提醒新手注意const指针、基础类型别名等常见陷阱。

2026-05-10 00:44:29 352

原创 C++枚举新手入门教程

本文介绍了C++枚举的基础知识和进阶用法。首先解释了枚举的作用是给常量命名以提高代码可读性,然后详细讲解了传统枚举的定义方式、作用域范围和使用方法。文章指出了传统枚举的两大缺陷:命名冲突和类型不安全问题。最后介绍了C++11引入的强类型枚举(enum class),它能完美解决传统枚举的问题,通过作用域限定和类型检查使代码更安全可靠。教程包含大量代码示例,适合C++新手学习枚举的基本用法和最佳实践。

2026-05-06 23:38:37 342

原创 Claude CLI免费安装和配置

本教程介绍如何在国内安装配置Claude CLI工具。首先需要安装Node.js(版本≥18.x)和Claude CLI。安装完成后,通过修改用户目录下的.claude.json配置文件绕过区域限制。然后使用阿里云百炼的兼容API服务,获取API Key并配置环境变量(包括API地址和模型参数)。最后重启终端验证是否配置成功,并提供了常见问题解决方法。该方法可免费体验Claude的基础功能。

2026-04-24 00:43:59 837

原创 2、最简单的cmake项目

项目根目录下,创建build文件夹,后面生成的工程文件都放这里。项目根目录下,新建CMakeList.txt文件,编写如内容。本次用的是mingw, 故在build目录下执行如下指令。参数,有点麻烦,可以添加环境变量。在build目录下执行指令。, build目录下生成了。查看当前默认的生成器名字。,指定默认的生成器,如下。

2025-12-29 10:00:00 320

原创 1、学习环境准备

cmake学习环境的搭建

2023-12-26 10:00:00 612

原创 解决IDEA中Groovy项目no Groovy library is defined...的问题

解决IDEA中新建Groovy Class出现的Cannot compile Groovy files: no Groovy library is defined for module xxx 的问题

2019-09-01 08:10:38 9255

原创 Pipenv使用入门

本文主要介绍了Pipenv的基本使用

2019-06-30 10:46:00 4659 1

原创 Python依赖管理那点事

关于Python依赖管理的一些碎碎念。

2019-06-30 10:29:09 4262

原创 Centos7主机名变成bogon的原因及解决方法

关于主机名变成bogon的原理分析及解决方法的探讨。

2019-02-02 18:28:07 14694 8

原创 解决防火墙导致虚拟机不能ping通宿主机的问题

解决为windows防火墙导致虚拟机不能ping通宿主机的问题

2019-02-01 09:19:40 2767

原创 Vmware下Centos7设置静态IP

文章目录1.设置虚拟机网络2.设置宿主机网卡信息3. 修改配置文件4.测试这里在NAT模式下进行设置。1.设置虚拟机网络对应于NAT模式,虚拟机应该设置VMnet8,点击编辑->虚拟网络编辑器,如图:点击更改设置,进入下图界面,选中VMnet8,取消勾选使用本地DHCP服务将IP地址分配给虚拟机点击NAT设置,进入下图界面在子网IP网段中选一个IP作为网关IP并记住(后面有...

2019-01-31 09:20:01 3202 3

原创 MySQL8.0.13安装

文章目录1. 下载2. 配置环境变量3. 添加配置4. 初始化数据库5. 安装服务6. 登录7. 修改密码1. 下载到MySQL官网上选择合适的版本下载zip包,本次使用的版本是mysql-8.0.13-winx64。下载地址下载完之后找个合适的地方解压,解压后目录如下图所示:2. 配置环境变量将安装目录添加到环境变量Path中,如图:3. 添加配置在安装目录下新建一个名为my....

2019-01-30 19:23:53 503

原创 单例模式

关于单例模式的一些笔记

2018-12-22 17:04:38 384

原创 解决Qt生成exe错误:无法定位程序输入点。。。

初学Qt,踩坑。。。。

2018-11-01 21:23:59 11580 14

原创 Git中忽略Eclipse中的特定文件

Eclipse中特定文件Eclipse为了管理我们创建的工程,往往会维护一些文件,这些文件和开发没有直接联系。这些文件对用户是隐藏的,但可以在Navigator视图(Window -> Show View ->Navigator)中看到中。主要包括了下面几种文件:.classpath文件.project文件.settings目录下的所有文件在Git中,最好不要对其进...

2018-08-29 19:32:44 1005

原创 方法引用和构造器引用

本文主要介绍了方法引用、构造器引用和数组引用的用法

2018-08-20 21:01:38 986

原创 Lambda表达式和函数式接口

本文主要介绍了lambda表达式和函数式接口的使用。

2018-08-19 21:28:59 4147

原创 pip的基本使用和离线安装Python第三方库

本文主要介绍了pip的常用命令和Python第三方库的安装步骤

2018-07-17 18:46:59 15937

原创 解决Windows安全性登录弹框的问题

解决电脑经常不定期出现安全性登录弹框的问题

2018-05-21 20:36:32 20137 3

原创 解决VMware14打开虚拟机黑屏问题

最近把VMware升级到14.0之后,运行虚拟机之后无法显示图像(屏幕一团黑),但点击显示缩略图的时候是可以看到系统已经启动并在正常运行的。可以通过以下方法解决:以管理员身份打开命令提示符输入命令:netsh winsock reset重启电脑虚拟机和主机之间的通信,基本上是以socket的方式进行通信的(这里socket 泛指一切socket,包括本地的、网络的等等) ...

2018-03-16 23:18:04 4348

原创 Windows64位系统进入debug模式

Debug 是DOS、Windows 提供的实模式(8086方式)程序的调试工具。使用它, 可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。由于各种原因,我们可能需要使用debug 。然而,现在大多数人的电脑是64位系统,而64位系统已经不再支持命令行模式下进入debug。那64位系统用户怎样才能进入debug模式呢? 我们可以通过安装配置DOSBox和deb...

2018-03-10 11:04:32 32288 20

转载 解决JavaFX Scene Builder打不开.fxml文件的问题

前面介绍了用JavaFX Scene Builder来进行界面开发,用起来很方便。但最近在使用时发现了一个问题。 要打开fxml文件来设置控制器以及元素与控制器中的属性的对应关系时,JavaFX Scene Builder一直没有响应,只在通知栏显示一个图标,鼠标悬浮在上面时也只是显示一个小黑窗口。下面是从知乎上找来的答案,亲测可用。解决方法如下:打开JavaFX Scene Bu...

2018-03-05 15:58:55 8515 15

原创 Github Pages搭建网站

GitHub Pages是一个静态站点托管服务。 GitHub Pages设计用于直接从GitHub存储库托管您的个人,组织或项目页面。 GitHub Pages是一个静态网站托管服务,不支持服务器端代码,如PHP,Ruby或Python。 本文将介绍如何在github pages上搭建站点。

2017-12-24 20:25:56 741

原创 Git管理远程仓库

本文将介绍用Git来管理远程仓库。

2017-12-24 01:05:08 559

原创 Git入门

本文将介绍Git的初始化及仓库的建立和操作

2017-12-23 22:51:25 543

原创 JavaFX控件——FileChooser(文件选择框)

本文介绍了如何使用FileChooser类来让用户浏览文件系统。

2017-12-22 22:00:54 17338 2

原创 JavaFX控件——TableView

很多JavaFX SDK API种的类为在表格表单中呈现数据。本文将接受如何添加一个表格表、数据填充、编辑表格行等格组件 JavaFx的基本操作。

2017-12-22 17:34:57 19200 12

转载 安装JavaFX Scene Builder 到Eclipse

JavaFX Scene Builder是一种可视布局工具,允许用户快速设计JavaFX应用程序用户界面,而无需编码。用户可以将UI组件拖放到工作区,修改其属性,应用样式表,并且它们正在创建的布局的FXML代码将在后台自动生成。它的结果是一个FXML文件,然后可以通过绑定到应用程序的逻辑与Java项目组合JavaFX Scene Builder可以集成到IDE(如Eclipse和Netbea

2017-12-14 23:41:42 2567

转载 在Eclipse中安装e(fx)lipse (JavaFX工具)

本文将介绍JavaFX开发环境安装配置,用来开发和运行JavaFX应用程序。

2017-12-10 09:44:47 6482 1

转载 Win10如何开启“上帝模式”

开启上帝模式步骤如下:首先:我们要在桌面上新建一个文件夹。第二步:我们要对刚才的文件夹重命名,将“GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}”(不含引号)复制过去(你想要手打没人拦你),保存即可。第三步:这时你会惊奇的发现一个命名“Godmode”的按钮出现了,其图标跟控制面板差不多。打开之后,你就能快速设置一些内容了,无需在系统选项中一个一个寻找。

2017-12-08 11:04:22 1726

原创 Windows删除文件时显示找不到该项目

当在Windows删除文件时出现找不到该项目或者显示该文件不在磁盘中,可以尝试以下方法:      在要删除文件的同级目录下 新建一文本文档,将下列代码复制到文档中,将文档保存为后缀名为.bat的文档(名字随意),              DEL /F /A /Q \\?\%1                             RD /S /Q \\?\%1

2017-10-25 20:29:44 2358

空空如也

空空如也

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

TA关注的人

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