- 博客(138)
- 资源 (2)
- 问答 (4)
- 收藏
- 关注
原创 使用django-haystack+whoosh实现全文搜索
好像是上个星期在写代码的时候遇到了一些问题,这个问题似乎我之前也遇到过,印象中好像也写博客进行记录了的,于是就想在我的博客系统中“查找”(表示很无奈居然没有搜索功能🥹🥹),于是就利用现有的过滤功能进行查找,但之前的分类和标签早就不记得了😅 ,于是就一直没有找到,但印象中确实写过相关内容…所以就有点尴尬了…😅😅😅,所以为了解决这个问题,花了将近一整天的时间给博客系统加了一个全文搜索的功能。
2024-07-07 23:49:33
1060
2
原创 《Python源码剖析》之pyc文件
前面我们主要围绕pyObject和pyTypeObject聊完了python的内建对象部分,现在我们将开启新的篇章—python虚拟机,将聚焦在python的执行部分,搞懂从“代码”到“执行”的过程。开启新的篇章之前,你也许会有一个疑惑:我们写的代码是如何执行的?从表面看,我只要按照python的正确语法书写一段代码,然后“剩下的”交给python解释器,代码就能被执行了!
2024-05-26 22:20:14
593
原创 《Python源码剖析》之PyTypeObject
这一篇博客原本应该是写在上一篇关于pyObject对象的博客中的,但是为了不把内容写的又臭又长,给读者减轻痛苦,给我也减少压力,于是就专门用一篇介绍一下今天的主角—pyTypeObject。通过对的探究,我们可以知道,每一个对象都会有一个自己的,因为它们都会有自己的类;在结构体内部它定义了三大类型numbersequence和mapping各自的结构体,可以理解成最基本的行为集合,通过实现其中任何一种类型中全部或部分的行为定义,就可以实现一个具体的类,以float类型为例,我们只需要实现number。
2024-04-21 16:06:40
884
原创 《Python源码剖析》之对象的基石---PyObject
ob_refcnt和ob_type,其中_PyObject_HEAD_EXTRA是用于指向活动堆的指针,这个我们暂时不用管;ob_refcnt是用于引用计数的,它的类型是long,记录了当前对象被引用的次数;ob_type是对PyTypeObject类型的一个引用,它也是今天的一个主角,我稍后会在下面重点介绍它的,通过了解它,我相信你会发出类似于“哇!~”的感叹,或者是突然灵光一现的样子:原来是这样子🦆~(如果你也是一个python爱好者的话哈哈哈)
2024-04-20 19:54:24
882
原创 使用isort和autopep8统一代码风格
今天和大家分享一篇关于python代码风格统一的方法。我自己之前有使用过,但都是使用公司现成的,没有自己动手去实操,所以为了一探究竟,今天专门花了一点时间去研究,这个过程还挺顺利的,这里我将这个过程分享给大家。我这里主要分享python中的导包规范和内容规范统一的方法,分别使用到的两个工具是isort和autopep8,当然这样的工具有很多,至于为什么选择这两个工具:第一导包工具的格式化我只查到了isort这一个,第二autopep8是根据pep 8这个提议开发的,相对较官方。
2024-04-20 19:49:52
661
原创 《Python源码剖析》之python的源码组织
如果把学习python源码看做是一次探索之旅,在开启一场探索之前,准备好一张完整的“地图”,无疑是这次探索的一个强力“加速器”,这样既可以让我们尽可能的不“迷路”,同时也会让我们有一个明确的方向,追随这个方向,才会让我们立目的地越来越近!
2024-03-12 20:24:28
456
原创 《Python源码剖析》之字符串拼接的一个效率问题
我们常用的字符串拼接方法有两个,一个是通过“+”号实现字符串的拼接,还一个就是通过join方法来实现拼接,前者在写法上更加便利,和数字之间的加法运算一样,通常只有两个运算对象,只不过他们的运算规则有所不同,字符的加法规则是“拼接”,数字的加法规则是“数值相加”;而join方法处理的对象通常是多个字符串,他们使用相同的拼接符号进行拼接最终得到一个字符串。值得注意的是,除了操作对象的个数不同以外,这两个功能几乎可以相互平替对方。
2024-03-09 22:54:05
1150
原创 Vue底层监测数据变化的原理
从方法名可以看到,它要实现的功能很直观,就是定义属性!没错,它的功能就是给指定的一个对象定义一个属性,已经属性的相关操作。
2023-10-18 13:23:44
195
原创 基于协同过滤的博客推荐系统
基于协同过滤的博客推荐系统摘要随着互联网的快速发展,越来越多的人加入了博客创作和阅读的行列,使得博客平台上的内容呈现出爆炸式增长的趋势。然而,这也带来了一个新的挑战,即如何帮助用户在众多博客文章中找到他们感兴趣的内容。在这样的背景下,本文提出了一种基于协同过滤的博客推荐系统,以解决上述问题。协同过滤是一种常用的推荐算法,它利用用户行为数据和博客内容信息来进行个性化推荐。该系统首先收集用户的历史阅读记录和行为数据,如浏览记录、点赞和评论等,以了解用户的兴趣和偏好。然后,通过分析博客文章的内
2023-09-02 19:05:44
720
原创 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
426
4
原创 golang学习笔记系列之sort包的学习
sort包主要针对[]int,[]float64,[]string以及其他自定义的切片排序,对于任何类型的切片,只要实现了。sort.Sort默认使用快速排序方法,因此平均时间复杂度为nlog(n)sort包提供了排序切片和用户自定义数据集以及相关功能的函数。接口就可以对其进行排序。
2022-11-12 23:11:09
187
原创 golang学习笔记系列之一些标准库的学习(log,bytes,errors等)
go语言使用error类型来返回函数执行过程中遇到的错误,如果返回的error值为nil,则表示未遇到错误,否则error会返回一个字符串,用于说明遇到了什么错误。bytes提供了对字节切片进行读写操作的一系列函数,字节切片处理函数比较多分为基本处理函数,比较函数,后缀检查函数,索引函数,分割函数,大小写处理函数和子切片处理函数。,也就是说,error可以是任何类型,这意味着,函数返回的error值实际可以包含任意信息,不一定是字符串。通过调用log包的函数,可以实现简单的日志打印功能。
2022-11-06 16:46:46
738
原创 基于go语言的史上最流弊的学生成绩管理系统
一个基于go语言的学生成绩管理系统,没有花里胡哨的界面,但有你想象不到的功能;没有mysql,redis做支撑,但文件管理也不赖;没有高大上的高级语法,但经验告诉我:大道至简!刚刚学习完go语言基础,纯当拿来练手用的。喜欢的小伙伴可以拿去玩玩~🤪🤪🤪。
2022-10-30 12:12:24
572
原创 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
298
原创 golang学习笔记系列之并发编程
同步是通道上发送和接收之间交互的基础。在上面的代码中,我们可以看到在主协程中调用了Gosched方法,因此当主协程和show_msg协程抢占处理机时,如果show_msg协程先抢到执行,则执行结果如上;在golang中,如果除了主协程以外还有其他的协程,当主协程结束的时候其他协程也会一起结束,不管它们有没有执行完毕,即默认是协程守护的。可以看到上面的代码的每次运行结果都可能不一样,因为每一个show_msg都用一个协程来启动,它们和主协程一样,但是只要主协程执行结束,不管它们有没有被执行,都会被结束。
2022-10-05 16:19:48
918
1
原创 golang学习笔记系列之接口
个人理解:为了方便理解,我觉得可以把它和面向对象语言里面的概念对比来理解,go语言中的接口有点类似于面向对象语言中的抽象基类,而实现了接口中所有方法的结构体可以看成是这个抽象基类的实现类,只有实现了接口中所有方法的实现类,才能把它看成是这个接口的一个子类,在参数类型是这个接口类型的地方,传入这个子类也是合法的。go语言的接口,是一种新的类型定义,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就实现了这个接口。接口就像一个公司里面的领导,它会定义一些通用规范,只是设计,而不实现规范。
2022-10-03 16:54:24
624
原创 golang学习笔记系列之方法
可以看到通过传递地址的fix_name2在内部修改结构体的属性后,该结构体的属性值会随之变化,而通过值传递的fix_name在内部修改结构体的属性值并不会对原结构体产生任何影响。go语言没有面向对象的特性,也没有类的概念。但是,可以使用结构体来模拟这些特性;go语言中的方法是一种特殊的函数,定义于struct之上(与struct绑定),被称为struct的接受者(receiver)。和函数的传值方法一样,方法的接受者类型同样支持值传递和地址传递,通过地址传递的,在方法内部对接受者进行操作会影响到接受者。
2022-09-26 22:25:58
339
原创 golang学习笔记系列之指针和结构体
类型定义语法my_type:自己新定义的类型old_type:已经存在的类型类型别名语法type my_type = old_type //用已存在的类型赋值给新类型两者的区别类型定义相当于定义了一个全新的类型,与之前的类型不同;但是类型别名并没有定义新的类型,而是使用一个别名来代替之前的类型类型别名只会在代码中存在,在编译完成之后并不会存在该别名因为类型别名和原来的类型是一致的,所以原类型所拥有的方法,类型别名定义的变量也拥有;但是如果是重定义的一个类型,那么不可以调用之前的任何方法。
2022-09-24 22:11:16
906
1
原创 golang学习笔记系列之函数
函数是go语言中的一级公民,我们把所有的功能单元都定义在函数中,可以重复使用。函数包含函数的名称,参数列表和返回值类型,这些构成了函数的签名。函数在使用之前必须先定义,可以调用函数来完成某个任务。函数可以重复使用,从而达到代码重用。语法func:声明函数function_name:函数名[parameter list]:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给函数,这个值被称为实际参数。参数列表指定的是参数类型,顺序及参数个数。参数是可选的,也就是说函数也可以不包含参数。re
2022-09-24 16:00:56
1072
原创 golang学习笔记系列之复杂数据类型
语法1slice_name:切片名TYPE:切片类型语法2//使用make函数定义切片时,会同时将切片初始化 slice_name := make([ ] TYPE , SIZE)slice_name:切片名TYPE:切片中元素的类型SIZE:初始化切片的大小。
2022-09-18 22:42:16
357
原创 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
326
原创 golang学习笔记系列之基本数据类型
反引号用来创建原生的字符串,可由多行组成,但不支持转义,并且可以包含除了反引号外其他所有字符。双引号创建可解析的字符串应用最广泛,反引号用来创建原生的字符串多用于书写多行消息,HTML以及正则表达式。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才去申请大内存,需要小数据的时候就去申请小的内存,就可以充分利用空间。go语言也有基于架构的类型,例如:int,uint和uintptr。go语言的字符串常见的转义字符包含回车,换行,单双引号,制表符等。
2022-09-10 18:05:06
264
原创 golang学习笔记系列之变量和常量
在go语言中,常量可以是数值类型,布尔类型,字符串类型等等。iota比较特殊,可以被认为是一个可被编译器修改的常量,它的默认值是0,每调用一次值就加一,遇到const关键字时被重置为0。如果我们接收到多个变量,有一些变量使用不到,可以使用下划线,便是变量名,这种变量叫做匿名变量。变量是计算机语言中能存储计算结果或能表示值的抽象概念,不同的的变量保存的数据类型可能不一样。go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。不需要为变量指定类型,根据变量的值来自动推断变量的类型。
2022-09-10 17:54:31
282
原创 golang学习笔记系列之标识符,关键字以及命名规则
命名规则涉及变量,常量,全局函数,结构,接口,方法等的命名。如果变量为私有,且特有名词为首个单词,则使用小写,如appService若变量类型为bool,则名称应以Has,Is,Can或Allow开头。保持package的名称和目录一致,尽量采取有意义的包名,简洁明了,尽量不要和标准库冲突。当命名以一个大写字母开头,如:Hello,那么使用这种形式的标识符的对象就。,通俗地讲,就是给变量,常量,函数,结构体,数组,切片,接口起名字。尽量采取简洁明了的文件名,简短,有意义,应该为。
2022-09-10 17:50:24
424
原创 golang学习笔记系列之go语言代码的组织
早期的go项目使用gopath来管理项目,不方便而且容易出错,从golang1.11开始使用gomod管理项目,除此之外,还有第三方项目管理工具,例如govendor。来组织代码,包对应到文件系统就是文件夹,模块就是go的源文件。一个包中可以有很多模块,或者多个子包。
2022-09-10 17:40:05
404
原创 浅谈C++
class 类名{ public: };值得注意的是,右花括号后的分号";"作为类声明的结束标志是不能漏掉的.类中定义的数据和函数分别称为数据成员和成员函数.
2022-08-28 16:42:32
2468
原创 linux常用命令总结
重启和关机需要系统管理员用户权限。如果没有执行关机命令,强制断电或关闭本地虚拟机的窗口,会导致linux操作系统文件的损坏,严重的可能导致操作系统无法正常启动。
2022-08-28 16:11:59
367
原创 python后端面试笔记,祝愿秋招拿到满意的offer。
秋招就要开始啦!!!能不能找到一个满意的职位就看它啦!这个我准备了很长时间,是一些对我自己来说觉得薄弱,掌握不牢的一些知识点的总结,一些自己掌握的还行的知识点就没有记录下来,所以可能不是很全,但是内容也算相当丰富啦!!!希望对看到的小伙伴有所帮助!!!
2022-08-20 17:56:20
584
2
原创 不同路径的数目(一)
一个机器人在m×n大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?备注:m和n小于等于100,并保证计算结果在int范围内数据范围:0 < n,m \le 1000...
2022-08-15 16:35:20
248
原创 最小花费爬楼梯
给定一个整数数组 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
176
原创 使用nginx+docker实现一个简单的负载均衡
对于一个服务,当并发请求量较大时,一个服务器可能就会处理不过来,这时候就需要加多台服务器,来处理这些并发的请求,而在这么多的服务器中,当前的请求具体大道哪台服务器上呢?这个时候我们就可以用到nginx提供的的负载均衡功能,我们可以根据每台服务器的配置,将配置好一点的服务器设置更高的权重;配置低一点的服务器就设置低一点的权重,这时候较多的请求就会打在配置好一点的服务器上,较少的请求就会打在配置差一点的服务器上,从而就实现了负载均衡。...
2022-08-14 11:05:14
3186
4
原创 《入门docker,这一篇就够了》
官方解释:一句话总结:docker是一个用于开发,发布和运行程序的开放平台,能够有效减少从开发到上线的延迟。容器技术,因此,也可以说,docker是容器技术的一个衍生品。在docker中,有三个重要的名词,分别是:dockerfile,images和container。虽然使用–link解决了使用ip访问带来的问题,但相较于每次启动都使用–link,自定义网络更是一劳永逸,为了使两个容器能够互通,与每次启动添加–link相比,直接指定自己定义的网络更方便,也更便于维护。......
2022-08-11 11:54:27
367
原创 golang学习笔记系列之go语言的环境搭建(linux系统下)
如下图所示,找到golang的下载地址后,下载对应的linux版的最新版。如果提示了go语言的版本,就说明安装成功啦!
2022-07-28 12:39:26
330
原创 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
139
原创 LeetCode之最大正方形(暴力求解和动态规划求解)
我一开始没有想到动态规划,只想到了暴力求解:就是依次扫每一个格子,看是否满足以它为正方形的左上角构成的最大正方形。
2022-07-15 20:57:02
321
原创 使用__slots__和__dict__来节省空间(简直就是质的飞越,LeetCode亲测有效)
__slots__类属性的作用是指定当前类的实例所有包含的所有属性,注意是所有,就是只能是__slots__所指定的属性,不能包含其他以外的属性,也不能新建属性。在运行的时候,它存在的意义就在于告诉解释器:这个类中的所有实例属性都在这儿了!...
2022-07-15 18:04:15
211
pytorch数据集出现问题??
2021-07-16
css 中关于z-index的问题
2021-07-09
input中选择文件后,却显示未选择任何文件?
2021-04-16
pycharm连接数据库出现的问题
2021-03-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人