随笔分类 -  Python

摘要:前言 在一次项目中收到一个json字符串,这个json对应的是自定义的一个模型,但是坑爹的是python自带的json库并不支持json序列化到对象实例,标准库只支持序列化到字典或者列表。在查找适合的第三方库无果后,我决心自己写一个,希望对那些遇到和我一样的问题的人有帮助。 项目地址: jsonla 阅读全文
posted @ 2021-11-10 14:20 KainHuck 阅读(350) 评论(0) 推荐(0)
摘要:堆排序算法流程 将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了 大顶堆:arr[i] >= arr[2i+1] && arr[i 阅读全文
posted @ 2020-05-27 14:06 KainHuck 阅读(184) 评论(0) 推荐(0)
摘要:快速排序算法流程 选定一个基准值(任意选,以第一个为例) 定义左右指针指向左右两端 左指针往右移动,如果遇到大于基准值的数就把它和右指针的值调换位置,然后左指针不动,右指针开始向左移动,如果遇到小于基准值的数就把他和左指针的值调换位置,然后开始移动左指针,以此类推,知道左右指针相遇 递归上述过程知道 阅读全文
posted @ 2020-05-26 16:01 KainHuck 阅读(218) 评论(0) 推荐(0)
摘要:归并排序算法流程 并归排序采用的是分治的思想,先将乱序的数组逐级拆分成一个个小部分,最底层每个部分长度为一(各个部分视为有序),然后在将有序的部分按照完全二叉树两两合并逐级往上,直到排序结束 参考如下图片(来源:https://www.cnblogs.com/chengxiao/p/6194356. 阅读全文
posted @ 2020-05-26 15:27 KainHuck 阅读(165) 评论(0) 推荐(0)
摘要:笔者环境:Arch Linux 1. 系统安装 和英文中文语言包 arch下安装十分简单,pacman会自动帮我们解决所有依赖 2. python安装必要的第三方库 2. 代码展示 分别识别中文,英文,数字 我测试时识别的图片在代码同一目录下的img目录下 阅读全文
posted @ 2020-03-12 21:47 KainHuck 阅读(6330) 评论(0) 推荐(0)
摘要:方法1 安装PySocks sudo pip3 install PySocks -i https://pypi.tuna.tsinghua.edu.cn/simple 使用代理 import socket import socks import requests socks.set_default_ 阅读全文
posted @ 2020-03-05 18:08 KainHuck 阅读(10978) 评论(0) 推荐(0)
摘要:pymongo操作手册 连接数据库 方法一 (推荐) 方法二 指定数据库 方法一 (推荐) 方法二 指定集合 方法一 (推荐) 方法二 插入数据 insert() insert()方法可以插入一条或多条数据,返回主键 或`_id`列表 插入一条数据示例 插入多条示例 但是现在官方已经不推荐使用该方法 阅读全文
posted @ 2020-02-27 22:30 KainHuck 阅读(506) 评论(0) 推荐(0)
摘要:XSRF XSRF即为 跨站请求伪造 这个漏洞利用了浏览器的一个允许恶意攻击者在受害者网站注入脚本使未授权请求代表一个已登录用户的安全漏洞。 了解XSRF 当一个网站的图片SRC属性为另一个网站的链接时,浏览器加载这个网站的这张图片时就会访问另一个网站。 防范请求伪造 重要的请求尽可能使用post方 阅读全文
posted @ 2019-10-16 22:02 KainHuck 阅读(558) 评论(0) 推荐(1)
摘要:深拷贝与浅拷贝 浅拷贝:只拷贝了一个地址,即和原变量指向同一个地址空间 深拷贝:复制了原变脸指向空间里的内容,并开辟了新的空间 所有的等号赋值是浅拷贝 深拷贝需要用到 模块 深拷贝举例: out: 几点说明: deepcopy()函数是会递归深拷贝,即比如列表里面有列表会统统深拷贝 注意copy.c 阅读全文
posted @ 2019-10-12 22:23 KainHuck 阅读(259) 评论(0) 推荐(0)
摘要:tornado和vue的模板冲突解决方法 Vue的插值表达式和tornado的模板都为一对花括号,可以通过修改vue的插值表达式的符号来解决这个问题,具体方法如下: 阅读全文
posted @ 2019-09-24 21:42 KainHuck 阅读(968) 评论(0) 推荐(0)
摘要:Tornado中的cookie分为两种 普通cookie 和 安全cookie 普通cookie 1.创建cookie 原型 参数解释 | 参数名 | 意义 | | | | | name | 创建cookie的名称 | | value | 创建cookie的值 | | domain | 提交cook 阅读全文
posted @ 2019-09-01 09:58 KainHuck 阅读(2007) 评论(0) 推荐(0)
摘要:字符转数字 数字转字符 阅读全文
posted @ 2019-08-30 14:18 KainHuck 阅读(334) 评论(0) 推荐(0)
摘要:tornado反向解析 在路由中添加 属性,并且不能使用元组路由,应当由 定义路由. Handler代码 关键函数 上面例子会获取到name为home的路由的正则匹配 阅读全文
posted @ 2019-08-30 13:39 KainHuck 阅读(286) 评论(0) 推荐(0)
摘要:抽象基类之 上回讲了Python中抽象基类的大概,相信大家对 以及什么是抽象基类已经有所了解。 "传送门" 现在我们来讲讲抽象基类的另一个常用用法 所谓声明协议,有点像Java中的接口这个概念。就是子类必须实现父类要求的方法。 1.不使用抽象基类来实现 1. 提出异常(规范起见请使用 NotImpl 阅读全文
posted @ 2019-07-27 11:14 KainHuck 阅读(414) 评论(0) 推荐(0)
摘要:1.说在前头 "抽象基类"这个词可能听着比较"深奥",其实"基类"就是"父类","抽象"就是"假"的意思, "抽象基类"就是"假父类." 2.对之前元类的一点补充 之前说过通过元类实例化类的语法是 现在介绍另一种方法 举个例子: 3.鸭子类型 鸭子类型:如果一个东西看起来想一个鸭子,叫起来像一个鸭子 阅读全文
posted @ 2019-07-21 11:12 KainHuck 阅读(5012) 评论(0) 推荐(3)
摘要:1.引入 Python中一切皆对象,所谓对象就是由类创建出来,那么创建对象的类本身也是一个对象,也就是说创建对象的类本身也由别的什么类创建,这种创建类的类就叫 . 2.元类是谁? 函数就是元类,没错就是那个打印数据类型的函数,也就是说是 创建了类. 我们写一个类然后打印一下他的属性看看 可以看到 类 阅读全文
posted @ 2019-07-14 16:43 KainHuck 阅读(538) 评论(2) 推荐(2)
摘要:生成器详解 1.什么是迭代器 只要定义了 的类那么他就是一个 ,如果定义了 方法那么他就是一个迭代器. 2.迭代器与生成器的区别 是一种 ,但是 不一定是生成器 3.什么是生成器 简单理解为每次生出(yield)一个值的东西 例子: 这个函数就是一个生成器,与普通函数不同的是,当函数执行到 语句时, 阅读全文
posted @ 2019-07-01 14:20 KainHuck 阅读(284) 评论(0) 推荐(0)
摘要:上下文管理器 1.与装饰器的区别 上下文管理器是装饰器的近亲,装饰器用于包装函数,上下文管理器用于包装任意代码块. 上下文管理器最常用的场合 作为确保资源被正确清理的一种方式. 2.上下文管理器举例 打开文件 打开文件必须确保其能关闭,这就构成了一种上下文的关系 3. 语句 我们知道 语句打开文件会 阅读全文
posted @ 2019-06-30 22:24 KainHuck 阅读(222) 评论(0) 推荐(0)
摘要:装饰器进阶 前言 如果你还不知道什么是装饰器,请看 "这里" , 请读者不要感到文章的冗长无聊,我会尽量用生动的表达,但我保证这是你见过最详细的教程(之一),如果你看完不能理解,欢迎在评论区批评我 给装饰器传参数 1 正如之前所说,装饰器就是函数,那么是函数就肯定可以传参数. 其实装饰器在调用时本身 阅读全文
posted @ 2019-06-16 10:33 KainHuck 阅读(361) 评论(0) 推荐(1)
摘要:1.前言 装饰器是Python的特有的语法,刚接触装饰器的同学可能会觉得装饰器很难理解,装饰器的功能也可以不用装饰器实现,但是装饰器无疑是提高你Python代码质量的利器(尤其是使用在一些具有重复功能的场景),是Python程序员的必备技能.下面我将由浅入深的讲解装饰器语法.在学习装饰器前请记住一点 阅读全文
posted @ 2019-06-09 16:58 KainHuck 阅读(497) 评论(0) 推荐(3)