Python
武坤
这个作者很懒,什么都没留下…
展开
-
Celery:分布式任务队列 简单上手
此文介绍 Celery 的基本用法。适合上手。内容纲要:0.概念。1.选择并安装 Broker(消息传送)。2.安装 Celery,并写一个任务。3.运行 woker,并调用任务。4.保存结果。好,开始吧。概念Celery 是基于消息传递的异步任务队列。它专注于实时操作,也支持调度。执行单元,称为Task,并发执行,在一个或多个w原创 2016-10-19 15:56:05 · 1499 阅读 · 0 评论 -
Python装饰器的函数式编程
Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西。虽然好像,他们要干的事都很相似——都是想要对一个已有的模块做一些“修饰工作”,所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能)侵入到原有...转载 2018-04-11 14:41:49 · 259 阅读 · 0 评论 -
python -m
python -m xxx.py作用是:把xxx.py文件当做模块启动但是我一直不明白当做模块启动到底有什么用。python xxx.py和python -m xxx.py有什么区别!自问自答:python xxx.pypython -m xxx.py这是两种加载py文件的方式:1叫做直接运行2把模块当作脚本来启动(注意:但是__name__的值为'main' )不同的加载py文件的方式,主要是影...转载 2018-03-20 20:30:27 · 7682 阅读 · 0 评论 -
virtualenv 创建隔离的 Python环境
virtualenvvirtualenv 是一个工具。用来创建隔离的 Python环境。一、安装# pip install virtualenv二、创建python虚拟环境 命令:virtualenv [虚拟环境名称]。 # virtualenv env1 执行后,在本地会生成一个与虚拟环境同名的文件夹。 使用--python参数指原创 2018-01-24 17:30:08 · 461 阅读 · 0 评论 -
Python的GIL锁
要想把N核CPU的核心全部跑满,就必须启动N个死循环线程。用 Python 启动与CPU核心数量相同的N个线程,在4核CPU上可以监控到CPU占用率仅有102%,也就是仅使用了一核。但是用C、C++或Java来改写相同的死循环,直接可以把全部核心跑满,4核就跑到400%,8核就跑到800%。为什么Python不行呢?因为Python的线程虽然是真正的线程,但解释器执行代码时原创 2018-01-13 21:02:29 · 1789 阅读 · 0 评论 -
Python中的ThreadingLocal
一旦在主线程实例化了一个local,它会一直活在主线程中,并且又主线程启动的子线程调用这个local实例时,它的值将会保存在相应的子线程中。1.local_data具有全局访问权,主线程,子线程都能访问它。2.但是 local_data的值却是线程隔离的,值只与各当前线程有关。#! coding:utf8import threading# 创建全局ThreadLocal对象:l原创 2018-01-13 20:58:50 · 493 阅读 · 0 评论 -
什么是序列化与反序列化
在OSI七层协议模型中展现层的主要功能:1.把 应用层的对象 转换成一段连续的二进制序列。——序列化2.把二进制序列转换成应用层的对象。——反序列化概念:序列化: 将数据结构或对象 转换成二进制序列 的过程反序列化:将二进制序列 转换成数据结构或对象 的过程 数据结构和对象二进制串(内存中的原创 2018-01-03 15:49:00 · 561 阅读 · 0 评论 -
Python的 enumerate zip map reduce filter
enumerate功能:遍历一个序列的元素以及其索引号例子:>>> list(enumerate('abc'))[(0, 'a'), (1, 'b'), (2, 'c')]>>> >>> for index, element in enumerate('abc'):... print index, element... 0 a1 b2 czip输入:序列组。输原创 2017-12-18 18:47:25 · 270 阅读 · 0 评论 -
字符编码 ASCII Unicode UTF-8
字符编码:ASCII 编码:最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,比如大写字母A的编码是65,小写字母z的编码是122。Unicode 编码: 把所有语言都统一到一套编码里,这样就不会再有乱码问题了。ASCII编码是1个字节,而Unicode编码通常是2个字节。(如果要用到非常偏僻的字符,就需要4个字节)原创 2017-12-18 10:59:58 · 269 阅读 · 0 评论 -
Python 装饰器 decorator
高阶函数可以把 函数 作为参数,也可以返回一个函数。那么,是否可以使用高阶函数,接受一个原函数,对其包装,然后返回一个新函数?原创 2017-08-09 11:53:22 · 312 阅读 · 0 评论 -
Python 需要单例模式吗
Python真的需要去实现单例模式吗?——不需要。因为,python有模块(module),最pythonic的单例典范。模块在一个应用程序中只有一份,本身就是单例的,将你所需要的属性和方法,直接暴露在模块中变成模块的全局变量和方法即可!# some module.pyclass SingletonClass: pass# 在别处我们想用这个实例都直接使用 modul...原创 2017-08-09 11:22:41 · 718 阅读 · 0 评论 -
python 限制函数执行时间,自己实现 timeout
# coding=utf-8import signalimport timedef set_timeout(num, callback): def wrap(func): def handle(signum, frame): # 收到信号 SIGALRM 后的回调函数,第一个参数是信号的数字,第二个参数是the interrupted stack frame.原创 2017-08-24 15:03:28 · 22119 阅读 · 2 评论 -
Python 迭代器 生成器
迭代器(Iterator)可以直接作用于for循环的对象,统称为可迭代对象:Iterable。可以被next()函数调用并不断返回下一个值的对象,称为迭代器:Iterator。Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。可以把这个数据流看做是一个有序序列,但我们却不原创 2016-11-11 22:52:41 · 419 阅读 · 0 评论 -
浅析Python3中的bytes和str类型
转自:https://www.cnblogs.com/chownjy/p/6625299.htmlPython 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,你不能拼接字符串和字节流,也无法在字节流里搜索字符串(反之亦然),也不能将字符串传入参数...转载 2018-10-31 09:47:01 · 363 阅读 · 0 评论