自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 资源 (2)
  • 问答 (4)
  • 收藏
  • 关注

原创 《Python源码剖析》之PyTypeObject

这一篇博客原本应该是写在上一篇关于pyObject对象的博客中的,但是为了不把内容写的又臭又长,给读者减轻痛苦,给我也减少压力,于是就专门用一篇介绍一下今天的主角—pyTypeObject。通过对的探究,我们可以知道,每一个对象都会有一个自己的,因为它们都会有自己的类;在结构体内部它定义了三大类型numbersequence和mapping各自的结构体,可以理解成最基本的行为集合,通过实现其中任何一种类型中全部或部分的行为定义,就可以实现一个具体的类,以float类型为例,我们只需要实现number。

2024-04-21 16:06:40 775

原创 《Python源码剖析》之对象的基石---PyObject

ob_refcnt和ob_type,其中_PyObject_HEAD_EXTRA是用于指向活动堆的指针,这个我们暂时不用管;ob_refcnt是用于引用计数的,它的类型是long,记录了当前对象被引用的次数;ob_type是对PyTypeObject类型的一个引用,它也是今天的一个主角,我稍后会在下面重点介绍它的,通过了解它,我相信你会发出类似于“哇!~”的感叹,或者是突然灵光一现的样子:原来是这样子🦆~(如果你也是一个python爱好者的话哈哈哈)

2024-04-20 19:54:24 662

原创 使用isort和autopep8统一代码风格

今天和大家分享一篇关于python代码风格统一的方法。我自己之前有使用过,但都是使用公司现成的,没有自己动手去实操,所以为了一探究竟,今天专门花了一点时间去研究,这个过程还挺顺利的,这里我将这个过程分享给大家。我这里主要分享python中的导包规范和内容规范统一的方法,分别使用到的两个工具是isort和autopep8,当然这样的工具有很多,至于为什么选择这两个工具:第一导包工具的格式化我只查到了isort这一个,第二autopep8是根据pep 8这个提议开发的,相对较官方。

2024-04-20 19:49:52 562

原创 《Python源码剖析》之python的源码组织

如果把学习python源码看做是一次探索之旅,在开启一场探索之前,准备好一张完整的“地图”,无疑是这次探索的一个强力“加速器”,这样既可以让我们尽可能的不“迷路”,同时也会让我们有一个明确的方向,追随这个方向,才会让我们立目的地越来越近!

2024-03-12 20:24:28 424

原创 《Python源码剖析》之字符串拼接的一个效率问题

我们常用的字符串拼接方法有两个,一个是通过“+”号实现字符串的拼接,还一个就是通过join方法来实现拼接,前者在写法上更加便利,和数字之间的加法运算一样,通常只有两个运算对象,只不过他们的运算规则有所不同,字符的加法规则是“拼接”,数字的加法规则是“数值相加”;而join方法处理的对象通常是多个字符串,他们使用相同的拼接符号进行拼接最终得到一个字符串。值得注意的是,除了操作对象的个数不同以外,这两个功能几乎可以相互平替对方。

2024-03-09 22:54:05 1080

原创 解决vitepress首次加载慢(从40秒到1秒的倔强)

在。

2024-02-16 22:51:47 819

原创 Vue底层监测数据变化的原理

从方法名可以看到,它要实现的功能很直观,就是定义属性!没错,它的功能就是给指定的一个对象定义一个属性,已经属性的相关操作。

2023-10-18 13:23:44 180

原创 基于协同过滤的博客推荐系统

基于协同过滤的博客推荐系统摘要随着互联网的快速发展,越来越多的人加入了博客创作和阅读的行列,使得博客平台上的内容呈现出爆炸式增长的趋势。然而,这也带来了一个新的挑战,即如何帮助用户在众多博客文章中找到他们感兴趣的内容。在这样的背景下,本文提出了一种基于协同过滤的博客推荐系统,以解决上述问题。协同过滤是一种常用的推荐算法,它利用用户行为数据和博客内容信息来进行个性化推荐。该系统首先收集用户的历史阅读记录和行为数据,如浏览记录、点赞和评论等,以了解用户的兴趣和偏好。然后,通过分析博客文章的内

2023-09-02 19:05:44 654

原创 golang学习笔记系列之标准库math的学习

math包包含了一些基本的常量和数学函数。

2022-12-25 18:01:55 471 1

原创 golang学习笔记系列之标准库json的学习

这个包可以实现json的编码和解码,即实现json对象和struct之间相互转换。

2022-11-23 22:49:39 283

原创 golang学习笔记系列之标准库time的学习

时间类型有一个自带的Format方法,需要注意的是Go语言中格式化的模板不是常见的Y-m-d H:M:S,而是使用Go的诞生时间2006年1月2号15点04分(记忆口诀为:2006 1 2 3 4)。Package time provides functionality for measuring and displaying time.(用于时间的测量和显示)时间戳是自1970年1月1日(08:00:00GMT)至当前时间的总秒数。它也被称为Unix时间戳。

2022-11-14 23:07:26 378 4

原创 golang学习笔记系列之sort包的学习

sort包主要针对[]int,[]float64,[]string以及其他自定义的切片排序,对于任何类型的切片,只要实现了。sort.Sort默认使用快速排序方法,因此平均时间复杂度为nlog(n)sort包提供了排序切片和用户自定义数据集以及相关功能的函数。接口就可以对其进行排序。

2022-11-12 23:11:09 166

原创 golang学习笔记系列之一些标准库的学习(log,bytes,errors等)

go语言使用error类型来返回函数执行过程中遇到的错误,如果返回的error值为nil,则表示未遇到错误,否则error会返回一个字符串,用于说明遇到了什么错误。bytes提供了对字节切片进行读写操作的一系列函数,字节切片处理函数比较多分为基本处理函数,比较函数,后缀检查函数,索引函数,分割函数,大小写处理函数和子切片处理函数。,也就是说,error可以是任何类型,这意味着,函数返回的error值实际可以包含任意信息,不一定是字符串。通过调用log包的函数,可以实现简单的日志打印功能。

2022-11-06 16:46:46 667

原创 基于go语言的史上最流弊的学生成绩管理系统

一个基于go语言的学生成绩管理系统,没有花里胡哨的界面,但有你想象不到的功能;没有mysql,redis做支撑,但文件管理也不赖;没有高大上的高级语法,但经验告诉我:大道至简!刚刚学习完go语言基础,纯当拿来练手用的。喜欢的小伙伴可以拿去玩玩~🤪🤪🤪。

2022-10-30 12:12:24 530

原创 python内置函数学习笔记

# coding:utf8# 1.abs(x) 求一个数的绝对值"""Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument is a complex number, its magnitude is returned."""a = -10**10print(abs(a))# 2.all(ite

2022-10-08 21:22:02 265

原创 golang学习笔记系列之并发编程

同步是通道上发送和接收之间交互的基础。在上面的代码中,我们可以看到在主协程中调用了Gosched方法,因此当主协程和show_msg协程抢占处理机时,如果show_msg协程先抢到执行,则执行结果如上;在golang中,如果除了主协程以外还有其他的协程,当主协程结束的时候其他协程也会一起结束,不管它们有没有执行完毕,即默认是协程守护的。可以看到上面的代码的每次运行结果都可能不一样,因为每一个show_msg都用一个协程来启动,它们和主协程一样,但是只要主协程执行结束,不管它们有没有被执行,都会被结束。

2022-10-05 16:19:48 833

原创 golang学习笔记系列之接口

个人理解:为了方便理解,我觉得可以把它和面向对象语言里面的概念对比来理解,go语言中的接口有点类似于面向对象语言中的抽象基类,而实现了接口中所有方法的结构体可以看成是这个抽象基类的实现类,只有实现了接口中所有方法的实现类,才能把它看成是这个接口的一个子类,在参数类型是这个接口类型的地方,传入这个子类也是合法的。go语言的接口,是一种新的类型定义,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就实现了这个接口。接口就像一个公司里面的领导,它会定义一些通用规范,只是设计,而不实现规范。

2022-10-03 16:54:24 551

原创 python并发编程之协程

摸鱼之余,跟着官方文档把协程这块过了一下。

2022-09-30 17:46:41 537

原创 golang学习笔记系列之方法

可以看到通过传递地址的fix_name2在内部修改结构体的属性后,该结构体的属性值会随之变化,而通过值传递的fix_name在内部修改结构体的属性值并不会对原结构体产生任何影响。go语言没有面向对象的特性,也没有类的概念。但是,可以使用结构体来模拟这些特性;go语言中的方法是一种特殊的函数,定义于struct之上(与struct绑定),被称为struct的接受者(receiver)。和函数的传值方法一样,方法的接受者类型同样支持值传递和地址传递,通过地址传递的,在方法内部对接受者进行操作会影响到接受者。

2022-09-26 22:25:58 312

原创 golang学习笔记系列之指针和结构体

类型定义语法my_type:自己新定义的类型old_type:已经存在的类型类型别名语法type my_type = old_type //用已存在的类型赋值给新类型两者的区别类型定义相当于定义了一个全新的类型,与之前的类型不同;但是类型别名并没有定义新的类型,而是使用一个别名来代替之前的类型类型别名只会在代码中存在,在编译完成之后并不会存在该别名因为类型别名和原来的类型是一致的,所以原类型所拥有的方法,类型别名定义的变量也拥有;但是如果是重定义的一个类型,那么不可以调用之前的任何方法。

2022-09-24 22:11:16 853 1

原创 golang学习笔记系列之函数

函数是go语言中的一级公民,我们把所有的功能单元都定义在函数中,可以重复使用。函数包含函数的名称,参数列表和返回值类型,这些构成了函数的签名。函数在使用之前必须先定义,可以调用函数来完成某个任务。函数可以重复使用,从而达到代码重用。语法func:声明函数function_name:函数名[parameter list]:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给函数,这个值被称为实际参数。参数列表指定的是参数类型,顺序及参数个数。参数是可选的,也就是说函数也可以不包含参数。re

2022-09-24 16:00:56 965

原创 golang学习笔记系列之复杂数据类型

语法1slice_name:切片名TYPE:切片类型语法2//使用make函数定义切片时,会同时将切片初始化 slice_name := make([ ] TYPE , SIZE)slice_name:切片名TYPE:切片中元素的类型SIZE:初始化切片的大小。

2022-09-18 22:42:16 336

原创 golang学习笔记系列之流程控制

go语言中可以使用for range遍历数组,切片,字符串,map及通道(channel)。continue只能用在循环中,在go中只能用在for循环中,它可以终止本次循环,进入下一轮循环。是用来判断给定的条件是否满足,并根据判断的结果决定执行的语句,go语言中的条件语句也是这样的。go语言中的循环只有for循环,去除了while,do while循环,使用起来更加简洁。break关键字可以结束for,switch和select的代码块。注意:在go语言中,布尔表达式不需要使用括号。

2022-09-12 16:40:56 295

原创 golang学习笔记系列之基本数据类型

反引号用来创建原生的字符串,可由多行组成,但不支持转义,并且可以包含除了反引号外其他所有字符。双引号创建可解析的字符串应用最广泛,反引号用来创建原生的字符串多用于书写多行消息,HTML以及正则表达式。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才去申请大内存,需要小数据的时候就去申请小的内存,就可以充分利用空间。go语言也有基于架构的类型,例如:int,uint和uintptr。go语言的字符串常见的转义字符包含回车,换行,单双引号,制表符等。

2022-09-10 18:05:06 253

原创 golang学习笔记系列之变量和常量

在go语言中,常量可以是数值类型,布尔类型,字符串类型等等。iota比较特殊,可以被认为是一个可被编译器修改的常量,它的默认值是0,每调用一次值就加一,遇到const关键字时被重置为0。如果我们接收到多个变量,有一些变量使用不到,可以使用下划线,便是变量名,这种变量叫做匿名变量。变量是计算机语言中能存储计算结果或能表示值的抽象概念,不同的的变量保存的数据类型可能不一样。go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。不需要为变量指定类型,根据变量的值来自动推断变量的类型。

2022-09-10 17:54:31 244

原创 golang学习笔记系列之标识符,关键字以及命名规则

命名规则涉及变量,常量,全局函数,结构,接口,方法等的命名。如果变量为私有,且特有名词为首个单词,则使用小写,如appService若变量类型为bool,则名称应以Has,Is,Can或Allow开头。保持package的名称和目录一致,尽量采取有意义的包名,简洁明了,尽量不要和标准库冲突。当命名以一个大写字母开头,如:Hello,那么使用这种形式的标识符的对象就。,通俗地讲,就是给变量,常量,函数,结构体,数组,切片,接口起名字。尽量采取简洁明了的文件名,简短,有意义,应该为。

2022-09-10 17:50:24 375

原创 golang学习笔记系列之go语言代码的组织

早期的go项目使用gopath来管理项目,不方便而且容易出错,从golang1.11开始使用gomod管理项目,除此之外,还有第三方项目管理工具,例如govendor。来组织代码,包对应到文件系统就是文件夹,模块就是go的源文件。一个包中可以有很多模块,或者多个子包。

2022-09-10 17:40:05 371

原创 浅谈C++

class 类名{​ public:​ ​ ​ };值得注意的是,右花括号后的分号";"作为类声明的结束标志是不能漏掉的.类中定义的数据和函数分别称为数据成员和成员函数.

2022-08-28 16:42:32 2072

原创 linux常用命令总结

重启和关机需要系统管理员用户权限。如果没有执行关机命令,强制断电或关闭本地虚拟机的窗口,会导致linux操作系统文件的损坏,严重的可能导致操作系统无法正常启动。

2022-08-28 16:11:59 350

原创 python后端面试笔记,祝愿秋招拿到满意的offer。

秋招就要开始啦!!!能不能找到一个满意的职位就看它啦!这个我准备了很长时间,是一些对我自己来说觉得薄弱,掌握不牢的一些知识点的总结,一些自己掌握的还行的知识点就没有记录下来,所以可能不是很全,但是内容也算相当丰富啦!!!希望对看到的小伙伴有所帮助!!!

2022-08-20 17:56:20 576 2

原创 不同路径的数目(一)

一个机器人在m×n大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?备注:m和n小于等于100,并保证计算结果在int范围内数据范围:0 < n,m \le 1000...

2022-08-15 16:35:20 224

原创 最小花费爬楼梯

给定一个整数数组 cost \cost ,其中 cost[i]\cost[i] 是从楼梯第i \i 个台阶向上爬需要支付的费用,下标从0开始。数据范围:数组长度满足 1 \le n \le 10^5 \1≤n≤105 ,数组中的值满足 1 \le cost_i \le 10^4 \1≤costi​≤104。你将从下标为1的台阶开始,支付5 ,向上爬两个台阶,到达楼梯顶部。2.支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。3.支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。...

2022-08-15 15:35:27 158

原创 使用nginx+docker实现一个简单的负载均衡

对于一个服务,当并发请求量较大时,一个服务器可能就会处理不过来,这时候就需要加多台服务器,来处理这些并发的请求,而在这么多的服务器中,当前的请求具体大道哪台服务器上呢?这个时候我们就可以用到nginx提供的的负载均衡功能,我们可以根据每台服务器的配置,将配置好一点的服务器设置更高的权重;配置低一点的服务器就设置低一点的权重,这时候较多的请求就会打在配置好一点的服务器上,较少的请求就会打在配置差一点的服务器上,从而就实现了负载均衡。...

2022-08-14 11:05:14 2962 4

原创 《入门docker,这一篇就够了》

官方解释:一句话总结:docker是一个用于开发,发布和运行程序的开放平台,能够有效减少从开发到上线的延迟。容器技术,因此,也可以说,docker是容器技术的一个衍生品。在docker中,有三个重要的名词,分别是:dockerfile,images和container。虽然使用–link解决了使用ip访问带来的问题,但相较于每次启动都使用–link,自定义网络更是一劳永逸,为了使两个容器能够互通,与每次启动添加–link相比,直接指定自己定义的网络更方便,也更便于维护。......

2022-08-11 11:54:27 344

原创 golang学习笔记系列之go语言的环境搭建(linux系统下)

如下图所示,找到golang的下载地址后,下载对应的linux版的最新版。如果提示了go语言的版本,就说明安装成功啦!

2022-07-28 12:39:26 305

原创 LeetCode之等式方程的可满足性

给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程equations[i]的长度为4,并采用两种不同的形式之一"a==b"或"a!=b"。在这里,a和b是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回true,否则返回false。示例1输入["a==b","b!=a"]输出false解释如果我们指定,a=1且b=1,那么可以满足第一个方程,但无法满足第二个方程。...

2022-07-21 16:52:49 121

原创 LeetCode之最大正方形(暴力求解和动态规划求解)

我一开始没有想到动态规划,只想到了暴力求解:就是依次扫每一个格子,看是否满足以它为正方形的左上角构成的最大正方形。

2022-07-15 20:57:02 300

原创 使用__slots__和__dict__来节省空间(简直就是质的飞越,LeetCode亲测有效)

__slots__类属性的作用是指定当前类的实例所有包含的所有属性,注意是所有,就是只能是__slots__所指定的属性,不能包含其他以外的属性,也不能新建属性。在运行的时候,它存在的意义就在于告诉解释器:这个类中的所有实例属性都在这儿了!...

2022-07-15 18:04:15 191

原创 python中__init__真的会在__new__完成后执行吗?

大家可能都知道,在python中创建一个对象的流程是:首先调用__new__方法创建一个实例,然后再调用__init__方法初始化这个实例对象。这个是常规的思路,也没有什么问题。

2022-07-15 14:49:53 425

原创 python中的property,以及属性和特性之间的优先权

直观的看,特性的目的好像是把方法“属性化”,但这样做一点意义也没有,如果我可以定义一个属性,何必再额外定义一个方法,然后将其转化成属性呢?所以,更重要的目的就是应对一些特定场景。 从特性表现出来的性质和行为来看,它其实就是一种特定的“属性”。只不过特性的权利提升了一点点,就好像你可以去修改这个属性,但是能不能修改成功,就看你的上一级允不允许你修改(有没有给你这个属性添加限定条件),而特性的权利就扩展到了这个“上一级”。......

2022-07-14 17:50:05 422 3

个人博客系统请求日志。

个人博客系统请求日志。

2022-07-07

整蛊小游戏的资源文件。

整蛊小游戏的资源文件

2022-05-06

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

TA关注的人

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