![](https://img-blog.csdnimg.cn/20200412101722778.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python
Python技巧
一介'书生
这个作者很懒,什么都没留下…
展开
-
Python 交互两个变量的三种方式
第1种方式a = 4b = 5c = 0c = aa = bb = cprint(a)print(b)第2种方式a = 4b = 5a = a+b # a=9, b=5b = a-b # a=9, b=4a = a-b # a=5, b=4print(a)print(b)第3种方式a, b = 4, 5a, b = b, aprint(a)...原创 2020-04-11 22:17:02 · 861 阅读 · 0 评论 -
进程_线程_协程形象比喻
进程、线程、协程对比通俗描述有一个老板想要开个工厂进行生产某件商品(例如剪子) 他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的 为了能够生产剪子而准备的资源称之为:进程只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程这个老板为了提高生产率,想到3种办法:原创 2018-01-05 11:25:35 · 614 阅读 · 0 评论 -
TCP详解_基于socket实现TCP客户端服务互
TCP介绍TCP协议,传输控制协议(英语:Transmission Control Protocol,缩写为 TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP特点面向连接TCP通信需要经过创建连接、数据传送、终止连接三个步骤。TCP通信模型中,在通信开始之前,一定要先建立相关的链接,才能发送数据,类似于生活中,”打电话””原创 2018-01-06 23:37:38 · 827 阅读 · 0 评论 -
WSGI协议
WSGI原创 2017-12-05 15:14:15 · 342 阅读 · 0 评论 -
HTTP协议
http原创 2017-12-13 22:20:11 · 345 阅读 · 0 评论 -
python中的bytes,str类型, 以及编码解码
文章目录python中的bytes,str类型, 以及编码解码python中的bytes,str类型, 以及编码解码python3中有bytes和string类型bytes主要是给在计算机看的,string主要是给人看的中间有个桥梁就是编码规则,现在大趋势是utf8bytes对象是二进制,很容易转换成16进制,例如\x64string就是我们看到的内容,例如’abc’strin...原创 2019-04-10 18:53:21 · 2794 阅读 · 3 评论 -
IO常见模型-详解io多路复用
常见io模型介绍blocking IOnonblocking IOIO multiplexingsignal driven IOasynchronous IOIO发生时涉及的对象和步骤对于一个network IO(这里我们以read举例),它会涉及到两个系统对象:一个是调用这个IO的process(or thread)一个就是系统内核(kernel)当一个rea...原创 2019-04-26 11:18:49 · 1726 阅读 · 1 评论 -
进程管理之supervisor的配置和使用
前言Supervisor(http://supervisord.org)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的...原创 2019-05-21 19:21:32 · 604 阅读 · 0 评论 -
Python多版本管理工具之pyenv
使用pyenv管理Python版本pyenv 是 Python版本管理工具. pyenv 可以改变全局的 Python 版本,安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理虚拟环境( virtual python environments). 所有的设置都是用户级别的操作,不需要 sudo 命令.pyenv 主要用来管理 Python 的版本,比如一个项目需...原创 2019-05-22 17:56:21 · 495 阅读 · 0 评论 -
Python 局域网一条命令开启服务器传输文件
局域网中的文件传输在同一个局域网中,如果方便快捷的传输文件?如果你要想着搭建一个ftp服务器,就太麻烦了. 现在一个命令就可以解决开启http服务器在Python3的环境下,直接运行python -m http.server # 默认开启8000端口在python2的环境下,直接运行python -m SimpleHTTPServer # 默认开启8000端口现...原创 2019-05-22 19:46:02 · 1639 阅读 · 0 评论 -
web框架-flask方式添加路由
和Django框架添加的方式不一样,flask框架用到了装饰器添加。 其好处是不用再把每一个路径以及函数手动添加到列表中,而是利用装饰器,在创建函数的时候,就把函数以及对应的路径添加到我们的路由列表中1 只需要定义一个空的列表 2 定义一个装饰器工厂函数 装饰器工厂函数的作用就是给装饰器提供一个环境变量(参数),把参数设置为路径,然后装饰器获得函数的引用名,就可以添加到我们的路由列表中原创 2017-12-24 22:25:50 · 1924 阅读 · 1 评论 -
python_sorted()详解
前言python中使用功能强大的sorted()函数,对序列排序sorted()介绍与map,filter,reduce一样,sorted也是一个高阶函数语法:sorted(iterable[, key[, reverse]])参数说明:iterable – 可迭代对象(列表,字典,字符串等)key – 接受一个函数来实现自定义的排序(key指定的函数将作用于list的每一个...原创 2019-04-19 17:11:47 · 775 阅读 · 1 评论 -
python逻辑运算符,计算优先级
前言python中的算数运算符,赋值运算符大家都比较熟悉,这里说一下逻辑运算符逻辑运算符python中也支持逻辑运算,但python中逻辑运算符的功能与其它语言有所不同. python中分别使用’or’, ‘and’, ‘not’这三个单词作为逻运算’或’, ‘与’, '非’的运算符,其中or与and为双目运算符,not为单目运算符.逻辑运算符的操作数可以为表达式或对象,下面将对它们的...原创 2019-04-19 17:15:51 · 2388 阅读 · 0 评论 -
python_正则_re模块
1 正则表达式原创 2017-12-30 22:11:11 · 238 阅读 · 0 评论 -
python_logging日志详解
开发过程中出现bug是必不可免的,你会怎样debug?从第1行代码开始看么?还是有个文件里面记录着哪里错了更方便呢!!!log日志Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍原创 2017-12-29 22:53:46 · 390 阅读 · 0 评论 -
python_继承详解
继承龙生龙,凤生凤,老鼠的儿子会打洞面向对象三大特性: 封装 继承 多态 继承:某个类直接具备另一个类的能力(属性和方法) 1 格式: class 子类名:(父类名) class Animal: def eat(self): print("-----吃-----") def drink(self):原创 2018-01-27 10:08:54 · 505 阅读 · 0 评论 -
python_运算符
运算符 数学符号表链接:https://zh.wikipedia.org/wiki/数学符号表01.算数运算符 是完成基本的算术运算使用的符号,用来处理四则运算 运算符 描述 实例 + 加 10 + 20 = 30 - 减 10 - 20 = -10 * 乘 10 * 20 = 200 / 除 10...原创 2018-03-06 00:39:31 · 221 阅读 · 0 评论 -
Python_异常处理详解
异常<1>异常简介看如下示例: print '-----test--1---' open('123.txt','r') print '-----test--2---'说明: 打开一个不存在的文件123.txt,当找不到123.txt 文件时,就会抛出给我们一个IOError类型的错误,No such file or directory:123.txt (没有123.txt这样原创 2018-02-02 09:10:25 · 316 阅读 · 0 评论 -
python_列表生成式_字典推导式
列表推导式 所谓的列表推导式,就是指的轻量级循环创建列表1 基本方式 a = [x for x in range(4)] a = [0, 1, 2, 3] b = [x for x in range(3, 19, 2)] b = [3, 5, 7, 9, 11, 13, 15, 17]2 在循环中过程中 使用if a = [x for x in range(3,原创 2018-02-08 15:09:29 · 336 阅读 · 0 评论 -
python_匿名函数(lambda)
匿名函数 用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。lambda函数的语法只包含一个语句,如下: lambda [arg1 [,arg2,.....argn]]:expression如下实例: sum = lambda arg1, arg2: arg1 + arg2 # 调用sum函数 print("Value of tota原创 2018-02-14 15:22:47 · 219 阅读 · 0 评论 -
python_变量_函数传参详解
局部变量 局部变量,就是在 函数内部定义的变量 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响 局部变量的作用域只在函数内部 局部变量的目的是 存储需要临时保存的数据 # 函数中的两个局部变量虽然同名,但互不影响 def test1(): a = 10 print("%d" % a) def test2():原创 2018-02-12 14:38:34 · 497 阅读 · 0 评论 -
python_类属性_实例属性
类属性、实例属性 在了解了类基本的东西之后,下面看一下python中这几个概念的区别先来谈一下类属性和实例属性 在前面的例子中我们接触到的就是实例属性(对象属性),顾名思义,类属性就是类对象所拥有的属性,它被所有类对象的实例对象所共有。对于公有的类属性,在类外可以通过类对象和实例对象访问类属性class People(object): name = 'Tom' #公有的类属性原创 2018-02-05 16:15:27 · 1055 阅读 · 0 评论 -
python_静态方法_类方法详解
静态方法和类方法类方法 是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(当然可以用其他名称的变量作为其第一个参数, 但是大部分人都习惯以’cls’作为第一个参数的名字,就最好用’cls’了),能够通过实例对象和类对象去访问。 class People(object): country原创 2018-01-29 15:20:08 · 360 阅读 · 0 评论 -
python_迭代器_可迭代对象_for...in...的本质
迭代是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。 迭代器只能往前不会后退。可迭代对象我们已经知道可以对list、tuple、str等类型的数据使用for…in…的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。 但是,是否所有的数据类型都可以放到for…in…的语句中,然后让原创 2017-12-31 21:58:22 · 1461 阅读 · 1 评论 -
python-生成器-yield-next()-send()
1.生成器利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。 为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,即生成器(generator)。生成器是一类特殊的迭代器。2.创建生成器方法1要创建一个生成器,有很多种方法。第一原创 2018-01-01 20:20:35 · 371 阅读 · 0 评论 -
python闭包,装饰器,装饰器工厂,类装饰器
装饰器 闭包原创 2017-12-04 20:26:54 · 332 阅读 · 0 评论 -
python中property详解
property属性1. 什么是property属性 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法 希望能够像调用属性一样来调用方法 此时可以将一个方法加上property # ############### 定义 ############### class Foo: def func(self): pass # 定义prop...原创 2018-12-09 23:06:07 · 15785 阅读 · 1 评论 -
Python常见魔法方法详解
目录常用魔法方法1. `__str__()`2. `__del__()`常用魔法方法1. __str__()当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据```pyclass Car: def __init__(self, newWheelNum, newColor): self.w...原创 2020-04-11 11:46:54 · 331 阅读 · 0 评论 -
Python 编码风格-pep8 编码规范
编码风格错误认知这很浪费时间我是个艺术家所有人都能穿的鞋不会合任何人的脚我善长制定编码规范正确认知促进团队合作减少bug处理提高可读性,降低维护成本有助于代码审查养成习惯,有助于程序员自身的成长pep8 编码规范Python Enhancement Proposals :python改进方案pep8 官网规范地址Guido的关键点之一是:代码更多是用来读而不是...原创 2020-04-11 10:13:54 · 311 阅读 · 0 评论 -
Python-functools中的partial函数和wraps函数
文章目录Python中的functoolspartial函数(偏函数)wraps函数Python中的functoolsimport functoolsdir(functools)结果['MappingProxyType', 'RLock', 'WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', 'WeakKeyDictionary', '_Cac...原创 2020-04-11 09:51:01 · 264 阅读 · 0 评论 -
Python常用内建函数详解
内建函数Build-in Function,启动python解释器,输入dir(builtins), 可以看到很多python解释器启动后默认加载的属性和函数,这些函数称之为内建函数, 这些函数因为在编程时使用较多,cpython解释器用c语言实现了这些函数,启动解释器 时默认加载。这些函数数量众多,不宜记忆,开发时不是都用到的,待用到时再help(function), 查看如何使用,或结合百...原创 2020-04-10 23:12:09 · 587 阅读 · 0 评论 -
Python常用内建属性详解
目录常用魔法属性__class____slots__常用魔法属性class用于查看当前对象所属的类>>> age = 35>>> age.__class__<type 'int'>>>> name = 'bob'>>> name.__class__<type 'str'>>&g...原创 2020-04-10 22:56:54 · 316 阅读 · 0 评论 -
Python垃圾回收(三) - gc模块
文章目录一.垃圾回收机制1、导致引用计数+1的情况2、导致引用计数-1的情况3、查看一个对象的引用计数二.循环引用导致内存泄露三.垃圾回收四.gc模块常用功能解析常用函数:gc模块的自动垃圾回收机制注意点一.垃圾回收机制Python中的垃圾回收是以引用计数为主,分代收集为辅。1、导致引用计数+1的情况对象被创建,例如a=23对象被引用,例如b=a对象被作为参数,传入到一个函数中,例如...原创 2020-04-10 22:39:11 · 228 阅读 · 0 评论 -
Python垃圾回收(二)
文章目录1. Garbage collection(GC垃圾回收)2. 画说 Ruby 与 Python 垃圾回收2.1 应用程序那颗跃动的心2.2 一个简单的例子2.3 Ruby 的对象分配2.4 Python 的对象分配2.5 Ruby 开发者住在凌乱的房间里2.6 Python 开发者住在卫生之家庭2.7 标记-清除2.8 标记-删除 vs. 引用计数3. Python中的循环数据结构以及引...原创 2020-04-10 22:18:10 · 173 阅读 · 0 评论 -
python垃圾回收(一)
文章目录小整数对象池大整数对象池intern机制总结小整数对象池整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 257) 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,所有位于这个范围内的整数使用的都是同一个对象.同理,单个字母也是这样的。但是当定义2个相...原创 2020-04-10 21:45:45 · 137 阅读 · 0 评论 -
Python私有化变量,方法
xx: 公有变量_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问__xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)xx:双前后下划线,用户名字空间的魔法对象或属性。例如:init , __ 不要自己发明这样的名字xx_:单后置下划线,用于避免与Python关键词的冲突通过n...原创 2020-04-08 14:18:07 · 174 阅读 · 0 评论 -
Python进制,位运算
文章目录什么是进制原码、反码、补码进制间转换位运算位运算的介绍位运算1. << 按位左移2. .>> 右移3. & 按位与4. | 按位或5. ^ 按位异或6. ~ 取反什么是进制理解个X进制的概念 :每一位 只允许出现 0~X-1 这几个数字,逢X进一,基是X, 每一位有一个权值大小是X的幂次。 其表示的数值可以写成按位权展开的多项式之和。十进制: 每...原创 2020-04-08 14:06:04 · 332 阅读 · 0 评论 -
Python 导入模块详解
1. import 搜索路径import syssys.path路径搜索从上面列出的目录里依次查找要导入的模块文件’ ’ 表示当前路径程序执行时导入模块路径sys.path.append('/home/xxx')sys.path.insert(0, '/home/xxx') #可以确保先搜索这个路径In [37]: sys.path.insert(0,"/home...原创 2020-04-08 13:27:42 · 332 阅读 · 0 评论 -
Python元类详解
文章目录1. 类也是对象2. 动态地创建类3. 使用type创建类4. 使用type创建带有属性的类5. 使用type创建带有方法的类6. 到底什么是元类(终于到主题了)7. __metaclass__属性8. 自定义元类1. 类也是对象在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:>>> class ObjectCreat...原创 2020-04-08 13:08:26 · 233 阅读 · 0 评论 -
Python中的包详解
引入包1. 有两个模块功能有些联系2. 所以将其放到同一个文件夹下3. 使用import 文件.模块 的方式导入4. 使用from 文件夹 import 模块 的方式导入5. 在msg文件夹下创建__init__.py文件6 在__init__.py文件中写入7 重新使用from 文件夹 import 模块 的方式导入8. 总结包将有联系的模块组织在一起,即放到同一...原创 2020-04-08 12:35:42 · 555 阅读 · 3 评论