Python
Code Life
全栈开发者 Python NodeJS Vue
展开
-
python中的Mixin
Mixin是为了给一个类扩充功能用的,它也没法被实例化。我们可以在Mixin类里实现一些方法给类扩充功能,合理使用mixin也能避免复杂的继承关系。你可能会问了,那为啥不直接写在类里头,比如用@staticmethod方法(我就有这个疑问)?我的理解是这样的,为了『高内聚』。如果你用过pylint检测代码,你会发现你在写类的一个方法时,如果在写一个method时没有使用到任何self里的东西,p...原创 2019-06-10 22:28:46 · 1139 阅读 · 0 评论 -
MySql and Python
用Python链接MySql数据库引入模块首先安装pymysql包pip3 install pymysql在py文件中引入pymysql模块from pymysql import *Connection 对象用于建立与数据库的链接创建对象:调用connect()方法conn=connect( host:连接的mysql主机,如果本机是'localhost' por...原创 2019-04-25 21:45:23 · 193 阅读 · 0 评论 -
Web静态服务器 使用epoll进行性能优化
epollIO 多路复用就是我们说的select,poll,epoll,有些地方也称这种IO方式为event driven IO。select/epoll的好处就在于单个process就可以同时处理多个网络连接的IO。它的基本原理就是select,poll,epoll这个function会不断的轮询所负责的所有socket,当某个socket有数据到达了,就通知用户进程。EPOLLIN (...原创 2019-04-16 21:26:45 · 290 阅读 · 0 评论 -
Python 多任务 - 协程
协程协程,又称微线程,纤程。英文名Coroutine。协程是python个中另外一种实现多任务的方式,只不过比线程更小占用更小执行单元(理解为需要的资源)。 为啥说它是一个执行单元,因为它自带CPU上下文。这样只要在合适的时机, 我们可以把一个协程 切换到另一个协程。 只要这个过程中保存或恢复 CPU上下文那么程序还是可以运行的。通俗的理解:在一个线程中的某个函数,可以在任何地方保存当...原创 2019-04-13 22:21:01 · 96 阅读 · 0 评论 -
Python 多任务 - 线程的理解
什么是多任务?简单地说,就是操作系统可以同时运行多个任务。实现多任务有多种方式,线程、进程、协程。并行和并发的区别?并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的真的多任务叫并行,假的多任务叫并发。什么是线...原创 2019-04-09 19:48:17 · 143 阅读 · 0 评论 -
迭代器 生成器
迭代器迭代是访问集合元素的⼀种⽅式。迭代器是⼀个可以记住遍历的位置的 对象。迭代器对象从集合的第⼀个元素开始访问,直到所有的元素被访 问完结束。迭代器只能往前不会后退。可迭代对象我们已经知道可以对list、tuple、str等类型的数据使⽤for…in…的循环语法从 其中依次拿到数据进⾏使⽤,我们把这样的过程称为遍历,也叫迭代。如何判断一个对象是否可迭代可以使⽤ isinstance()...原创 2019-04-12 21:47:24 · 226 阅读 · 0 评论 -
Python 实现静态web服务器
HTTP协议简介HTTP请求1:浏览器首先向服务器发送HTTP请求,请求包括:方法:GET还是POST,GET仅请求资源,POST会附带用户数据;路径:/full/url/path;域名:由Host头指定:Host: www.sina.com以及其他相关的Header;如果是POST,那么请求还包括一个Body,包含用户数据2:服务器向浏览器返回HTTP响应,响应包括:响应代码:2...原创 2019-04-15 22:00:44 · 402 阅读 · 0 评论 -
详解 Python random
random是Python内置模块官方文档地址Python标准库 » 数字和数学模块 » https://docs.python.org/3/library/random.htmlrandom- 生成伪随机数该模块为各种分布实现伪随机数生成器。对于整数,从范围中有统一的选择。对于序列,存在随机元素的统一选择,用于生成列表的随机排列的函数,以及用于随机抽样而无需替换的函数。在实线...原创 2019-04-08 20:49:37 · 4564 阅读 · 1 评论 -
Python的内存管理机制
先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲(1)垃圾回收(2)引用计数(3)内存池机制一、垃圾回收:python不像C++,Java等语言一样,他们可以不用事先声明变量类型而直接对变量进行赋值。对Python语言来讲,对象的类型和内存都是在运行时确定的。这也是为什么我们称Python语言为动态类型的原因(这里我们把动态类型可以简单的归结为对变量内存地址的分...转载 2019-04-02 21:40:11 · 154 阅读 · 0 评论 -
数据结构 双向链表 单向循环链表 Python代码
双向链表每个节点有两个链接:一个指向前一个节点,当此节点为第一个节点时,指向空值;而另一个指向下一个节点,当此节点为最后一个节点时,指向空值。代码实现:class Node: """双向链表节点""" def __init__(self, item): self.item = item self.next = None self...原创 2019-03-28 23:31:33 · 323 阅读 · 0 评论 -
常用正则表达式
正则表达式正则表达式是计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式的基本使用import rere.match(r’xxx’, 匹配的字符串) 尝试从字符串的起始位置匹配一个模式匹配成功re.match方法返回一个匹配的对象,否则返回None。可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式,groups()...原创 2019-04-17 21:25:59 · 130 阅读 · 0 评论 -
Python3 闭包、装饰器
首先要理解在python中一切皆对象,函数也是对象。闭包多层函数嵌套,(函数里面还有定义函数,一般是两个),往往内层函数会用到外层函数的变量,把内层函数以及外部函数的变量当成一个特殊的对象,这就是闭包。闭包比面向对象更纯净、更轻量,既有数据又有执行数据的代码;比普通函数功能更强大,不仅有代码还有数据。def func(): # 外部函数 a = 1 #外部函数作用域里的变量 print(...原创 2019-05-03 21:25:24 · 151 阅读 · 0 评论 -
Python heapq模块用法
放空自己,冥想人生短暂cc#.netphpjava SEjava EEpythongoRobynKotlin怎么开发原创 2019-05-12 21:55:26 · 498 阅读 · 0 评论 -
使用Python Tk模块 开发桌面应用程序(一)
Python3+导入tk模块进行测试demoimport tkintertkinter._test()点击 Click me 两边会增加括号点击 QUIT 退出程序创建一个tk窗口from tkinter import *root = Tk() # 创建窗口对象root.mainloop()向窗口添加一个标签 Hello world!from tkinter im...原创 2019-05-11 21:57:42 · 6898 阅读 · 0 评论 -
Python url编码
Python3对url编解码原创 2019-05-10 21:53:54 · 11388 阅读 · 1 评论 -
Python进行MD5加密 加盐
为什么任然有公司数据库存储明文密码?!什么是MD5Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 19...原创 2019-05-14 22:53:11 · 5829 阅读 · 5 评论 -
用元类来实现ORM
什么是ORM?ORM 即Object Relational Mapping,全称对象关系映射。为了简化SQL操作,把数据库的操作封装到类里面,把表名映射成类,把字段映射为属性,把行(数据)映射为实例。通过这样一一对应的映射关系,我们便可以避免直接操作数据库,而只要调用相应的方法即可。setattr()和getattr()的用法setattr(对象, 属性, 属性值) 给对象中的属性设置...原创 2019-05-09 22:31:15 · 114 阅读 · 0 评论 -
Python 日志模块(logging)的使用方法
日志模块软件开发过程中可能会出现BUG,为了方便debug快速定位错误代码,就需要用到log日志。在python中有个logging模块可以完成相关信息的记录。1.日志级别日志一共分为5个等级,从低到高分别是:DEBUGINFOWARNINGERRORCRITICAL说明:DEBUG:详细的信息,通常只出现在诊断问题上INFO:确认一切按预期运行WARNING:一个...原创 2019-05-06 22:50:09 · 644 阅读 · 0 评论 -
深入理解python中的元类,并自定义元类
始终铭记在Python中 一切皆为对象那么什么是元类?在Python中一切皆对象,类也是一个对象,实例对象由类创建出来的,类是由元类创建出来的。简而言之,用来创建类的类就叫元类(metaclass)。 函数type其实就是一个元类,type就是Python在背后用来创建所有类的元类。类是对象类是一组用来描述如何生成一个对象的代码段。In [1]: class ObjectCreato...原创 2019-05-08 22:58:19 · 383 阅读 · 0 评论 -
Python易错知识点
多继承以及MRO顺序多继承指的是子类继承多个父类,可以通过三种方式访问父类的方法:父类名.父类方法(self):这种方式容易造成父类方法被调用多次的问题(菱形继承问题),而且一旦父类名称发生变化,子类调用的地方都需要修改。super(指定某个类名, self).父类方法():从指定类名的MRO下一级开始调用super().父类方法():按照MRO顺序查找上级父类的方法。「方法解析顺序」(...原创 2019-05-04 19:42:16 · 489 阅读 · 0 评论 -
什么是WSGI
WSGIWhat is WSGI?WSGI is the Web Server Gateway Interface. It is a specification that describes how a web server communicates with web applications, and how web applications can be chained together ...原创 2019-05-03 21:43:10 · 398 阅读 · 0 评论 -
Python网络 tcp
TCPTCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是⼀ 种⾯向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP通信需要经过创建连接、数据传送、终⽌连接三个步骤。TCP通信模型中,在通信开始之前,⼀定要先建⽴相关的链接,才能发送数据,类似于⽣ 活中,"打电话"需要建立链接,确认发送结果,安全传输...原创 2019-04-07 22:02:03 · 257 阅读 · 0 评论 -
用Python生成二叉树
树的概念树(英语:tree)是⼀种抽象数据类型(ADT)或是实作这种抽象数据类型 的数据结构,⽤来模拟具有树状结构性质的数据集合。它是由n(n>=1)个 有限节点组成⼀个具有层次关系的集合。把它叫做“树”是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。它具有以下的特点:⚪ 每个节点有零个或多个⼦节点;⚪ 没有⽗节点的节点称为根节点;⚪ 每⼀个⾮根节点有且只有⼀个⽗节点...原创 2019-04-01 22:40:43 · 2693 阅读 · 0 评论 -
Python异常处理
Python异常处理 异常是程序执行过程中出现的非正常流程现象 异常是无法避免的,只能先预估出可能出现的异常现象,并提供对应的处理机制,在异常出现后保障程序不被中断执行。 针对程序出现的异常现象要制定合理有效的处理方案,不仅要避免异常现象的出现,还要在异常出现后设计针对性的有效处理方案。 异常处理语法try: print(a)except: ...原创 2019-03-25 22:43:36 · 467 阅读 · 0 评论 -
Python数据存储 (列表list)(字典dict) (元组typle ) (集合set)(范围 range)
Python数据存储 (列表list)(字典dict) (元组typle ) (集合set)1.列表 List 当需要存储大量数据,并且进行迭代取出操作的推荐使用列表。 列表整体是一个对象 特点:有索引 可删改 len(list) 求长度 列表创建格式:变量名 = [数据1,数据2,数据三,....]# 可存储 int strin...原创 2019-03-18 22:47:17 · 3581 阅读 · 0 评论 -
Python函数高级
默认参数 引用的思想 函数/方法在定义时为形参赋值,对应的形参称为默认参数 默认参数是一个参数定义期的概念,与调用无关。默认参数的作用 如果参数定义默认参数,在调用函数/方法时,未对该方法进行传值,则使用默认值作为该参数的值默认参数定义格式 def 函数名(形参1 = 值1, . . .): ...原创 2019-03-21 22:25:49 · 148 阅读 · 0 评论 -
Python文件操作总结
Python文件操作文件 计算机中数据持久化的表现形式读写文件标准格式一 打开原创 2019-03-24 22:47:03 · 1508 阅读 · 0 评论 -
Python面向对象
Python面向对象面向过程:关注步骤面向对象:关注谁能完成工作找到对应的人什么是类?类是一系列事物的统称,同类事物必定有相同的特征状态 --> 变量(成员变量)行为 --> 方法(成员方法)统称:类的成员什么是对象?对象是一个类的表现形式在程序开发中,先有类 后有对象类名 大驼峰命名法 每个单词首字母大写创建类c...原创 2019-03-17 22:52:42 · 145 阅读 · 0 评论 -
Python字符串
Python字符串string 是用于保存字符信息的容器: 创建:str1= "xxxx " 字符串可使用转义字符 \n \" \t 等 str1 ='xxxx ' str1 = ''' xxxx''' str1 = """xxxx""" 可以回车字符串基本操作公共函数...原创 2019-03-20 22:28:17 · 262 阅读 · 0 评论 -
Python公共方法
Python公共方法 len(容器) 返回容器内数据的总量 max(容器) 返回容器内最大的值 (字典只对键) min(容器) 返回容器内最小的值(字典只对键) sum() 求和 以下是 sum() 方法的语法...原创 2019-03-20 21:47:06 · 472 阅读 · 0 评论 -
Python基础知识点
Python是面向对象的解释型计算机程序设计语言 Python的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森干...原创 2019-03-16 22:24:51 · 150 阅读 · 0 评论 -
Python九九乘法表 之 while循环 上下左右四种输出图形
Python九九乘法表 之 while循环 上下左右四种输出图形1.左上输出i = 1while i < 11: j = i while j < 10: print("%d*%d=%d" % (i, j, i*j), end="\t") j += 1 i += 1 print("")2.左下输出...原创 2019-03-19 23:28:22 · 3293 阅读 · 2 评论 -
Python引用
引用引用就是变量指向数据存储空间的现象内存地址是数据在物理内存中存储的位置引用地址是对象在内存地址中的描述性地址,该地址与内存地址有区别引用特征相同数据使用同一个空间存储,节约内存占用 ;不同的变量使用相同的数据则指向相同的存储空间变量赋值修改的是变量的引用地址列表、集合、字典、对象的引用格式十分相似,都是指向一个存储区域,存储区域内数据发生变化,原始对象的引用不...原创 2019-03-22 21:56:16 · 762 阅读 · 0 评论 -
python排序算法(一) 冒泡、选择
排序排序算法(Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。排序算法的稳定性稳定排序算法会让原本有相等键值的记录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的记录R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。当相等的元素是⽆法分辨的,⽐如像是整数,稳定性并不是⼀个问题。然⽽,假设以下的数对将要以他们的第...原创 2019-03-29 22:38:46 · 217 阅读 · 0 评论 -
python 二分查找法
搜索搜索是在⼀个项⽬集合中找到⼀个特定项⽬的算法过程。搜索通常的答案是真的或假的,因为该项⽬是否存在。搜索的⼏种常⻅⽅法:顺序查找、⼆分法查找、⼆叉树查找、哈希查找二分查找法⼆分查找⼜称折半查找,优点是⽐较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插⼊删除困难。因此,折半查找⽅法适⽤于不经常变动⽽查找频繁的有序列表。⾸先,假设表中元素是按升序排列,将表中间位置记录的关...原创 2019-04-01 22:35:50 · 1005 阅读 · 0 评论 -
Python网络 udp
网络通信概念⽹络就是⼀种辅助双⽅或者多⽅能够连接在⼀起的⼯具让不同电脑上运行的软件之间,可以相互传递数据,就需要借助网络功能。网络能够把多方链接在一起,然后可以进行数据传递ip地址ip地址用来在网络中标记一台电脑ip地址包括两部分网络地址和主机地址查看本机ip地址windows cmdipconfigLinux 终端ifconfigUbuntu网卡打开 ifco...原创 2019-04-06 22:06:21 · 779 阅读 · 0 评论 -
Python 多任务 - 进程
进程进程、程序的概念程序:例如 hello.py 这个程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。不仅可以通过线程完成多任务,进程也是可以的进程的状态:工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态就绪态:运行的条件都已经慢去,正在等在cpu执行...原创 2019-04-10 19:33:56 · 144 阅读 · 0 评论 -
数据结构 单链表 python实现
链表链表属于线性表可以充分利用计算机内存空间,实现灵活的内存动态管理链表的定义链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个几点(数据存储单元)里存放下一个节点的位置信息(即地址)。单向链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域),和一个链接域。这个链接指向链表中的下...原创 2019-03-27 22:04:28 · 430 阅读 · 0 评论 -
求一段字符串中每个字符出现的次数,并排序输出(用Python实现)
统计字符串中每个字符的个数 排序输出结果将字符串去重存为列表将列表排序迭代列表 根据列表的值 去统计字符串中的字符将结果存储为字典输出结果**## 如果有更简单的方法请大佬评论告诉我,谢谢原创 2019-03-27 23:10:59 · 11708 阅读 · 1 评论 -
Python小技巧 早码完早下班
Python 是一门非常优美的语言,其简洁易用令人不得不感概人生苦短。本文中带我们回顾了 17 个非常有用的 Python 技巧,例如查找、分割和合并列表等。这 17 个技巧都非常简单,但它们都很常用且能激发不一样的思路。人生苦短,为什么我要用Python?很多读者都知道 Python 是一种高级编程语言,其设计的核心理念是代码的易读性,以及允许编程者通过若干行代码轻松表...原创 2019-04-05 22:42:35 · 177 阅读 · 0 评论