- 博客(39)
- 收藏
- 关注
原创 python类的__slots__属性
###学习版本3.5.2当一个类有__slots__属性时候且__slots__的元素不包含‘__dict__’时候:
2018-06-24 19:05:16
275
原创 Virtualenv的基本使用方法
环境ubuntu16.101.安装sudo pip3 install virtualenv2.创建指定版本的虚拟环境virtualenv -p /usr/bin/python3.5 py3env3.激活虚拟环境在虚拟环境目录用source ./bin/activate4.关闭虚拟环境deactivate
2018-01-20 18:59:42
566
原创 python模块学习(multiprocessing模块)
学习版本3.5.2multiprocessing模块跟threading模块非常相似,只是multiprocessing用的进程而threading用的线程。Process类,这个类跟threading模块的Thread类非常相似。Process比Thread多一个pid,在进程没有start的时候pid为None。Process比Thread多了个terminate(self)方
2017-11-20 16:29:16
727
原创 python模块学习(collections模块)
学习版本3.5.21.namedtuple,是tuple的子类,字面意思可命名的元组,就是用来创建一个给各个元素都加上了key的tuple。#/usr/bin/python3# -*- utf-8 -*-#学习版本3.5.2import collectionsif __name__ == "__main__": a = (1,2,3) newtuple = c
2017-11-16 13:00:43
454
原创 python中with的简单用法
学习版本3.5.2with语句:实现了__enter__()方法和__exit__()方法的对象能够使用。__enter__()方法在调用with代码块之前调用,__exit__()方法在调用with代码块之后调用,with代码块抛出异常的时候也能调用__exit__()方法。实验代码:#/usr/bin/python3# -*- utf-8 -*-#学习版本3.5.2clas
2017-11-14 16:49:32
291
原创 python模块学习(queue模块的Queue类、PriorityQueue类和LifoQueue类)
学习版本3.5.2PriorityQueue类和LifoQueue类继承Queue类然后重写了_init、_qsize、_put、_get这四个类的私有方法Queue:先进先出队列的同步实现,通过双向列表实现的 # Initialize the queue representation def _init(self, maxsize): self.queu
2017-11-14 15:51:52
6496
原创 python模块学习(threading模块的方法)
学习版本3.5.2Lock() 创建一个Lock对象并返回RLock() 创建一个RLock对象并返回active_count() 返回当前未被阻塞的线程的数量current_thread() 返回当前的线程对象enumerate() 返回当前未被阻塞的对象的listsetprofile(func)和settrace(func) 设置一个function在所有的线程
2017-11-13 16:04:47
714
原创 python模块学习(threading模块中的Barrier类)
学习版本3.5.2Barrier类是设置了一个线程数量障碍,当等待的线程到达了这个数量就会唤醒所有的等待线程。__init__(self, parties, action=None, timeout=None) parties障碍要求的线程数量 action设置了的话会在突破障碍的时候被某一个被唤醒的线程调用 timeout给之后的wait()设置了个默认的等待时间
2017-11-13 15:13:57
2836
原创 python模块学习(threading模块中的Event类)
学习版本3.5.2Event类是用于通过事件来控制线程的执行情况。它内部存了个flag来控制线程的阻塞与否。clear(self) 把flag设置为falseset(self) 把flag设置为true,并唤醒所有被阻塞的线程is_set(self) 返回flag的状态wait(self, timeout=None) 当flag为fa
2017-11-13 14:22:50
1341
原创 python模块学习(threading模块中的Condition类)
学习版本3.5.2Condition类是用来处理复杂线程的同步问题的。__init__(self, lock=None) 初始化时候可以传入一个Lock对象,或者默认会生成一个RLock对象。Condition提供了Lock类中的acquire()方法和release()方法。notify(self, n=1) 唤醒n个等待的线程notify
2017-11-13 13:52:58
788
原创 python模块学习(threading模块中的Semaphore类和BoundedSemaphore类)
学习版本3.5.2Semaphore类和BoundedSemaphore类都是信号量类,每次有线程获得信号量的时候(即acquire())计数器-1,释放信号量时候(release())计数器+1,计数器为0的时候其它线程就被阻塞无法获得信号量。当计数器为设定好的上限的时候BoundedSemaphore就无法进行release()操作了,Semaphore没有这个限制检查。#/usr/b
2017-11-10 11:05:00
1670
原创 python模块学习(threading模块中的Timer类)
学习版本3.5.2Timer是Thread的子类,是一个定时器功能的类,就是几秒钟之后执行某个方法。__init__(self, interval, function, args=None, kwargs=None)相比与Thread,它多了一个cancel()方法,能在对象还没执行完成的时候停止这个对象。#/usr/bin/python3# -*- utf-8 -*-
2017-11-10 10:21:29
7016
原创 python模块学习(threading模块中的Lock类和RLock类)
学习版本3.5.2Lock类:一个线程对资源进行加锁操作之后其它线程就必须等它释放锁之后才能对该资源进行操作。acquire()与acquire_lock()都是加锁操作,release()与release_lock()都是释放锁操作,locked()与locked_lock()都是查询当前锁的状态。RLock类:线程对资源进行加锁操作后,该线程还能继续对该资源加锁,加锁和释放锁的数量需要
2017-11-09 17:12:45
564
原创 python模块学习(threading模块中的Thread类)
学习版本3.5.21.实例化线程对象并初始化,用start()方法可以启动线程__init__(self, group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None)group是留着以后扩展用的,target是一个方法,name是线程名,args是位置变量的元组,kwargs是关键字变量
2017-11-08 18:52:00
3400
原创 python设计模式(中介者模式)
学习版本3.5.2#学习版本3.5.2#中介者模式定义:用一个中介者对象封装一些列的对象交互,中介者使各对象不需要显#式地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互#举例子:通过房产中介租房子class Person(object): def __init__(self, price): self.price = price def
2017-11-07 15:27:18
267
原创 python设计模式(访问者模式)
学习版本3.5.2#学习版本3.5.2#访问者模式定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据#结构的前提下定义作用于这些元素的新操作#举例子:系统访问玩家的等级class Player(object): def __init__(self, level): self.level = level def accept(self,
2017-11-07 14:34:33
276
原创 python设计模式(状态模式)
学习版本3.5.2#学习版本3.5.2#状态模式定义:允许一个对象在其内部状态改变时改变它的行为。#举例子:灯泡的开关class LightState(object): def display(self): passclass StateOn(LightState): def action(self, light):#开灯状态下按开关
2017-11-07 13:56:49
288
原创 python设计模式(备忘录模式)
学习版本3.5.2#学习版本3.5.2'''备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保>存这个状态,这样可以在以后将对象恢复到原先保存的状态'''#例如:我在游戏里先存个档,然后花50金币买了件武器,发现这个武器不好用,就读档#花那100金币去买了另一件武器#存档类class Memento(object): def __init__(se
2017-11-07 11:20:46
229
原创 python设计模式(命令模式)
学习版本3.5.2命令模式:将请求封装成对象,以便使用不同的请求、日志、队列等来参数化其它对象。命令模式也支持撤销操作。#学习版本3.5.2'''命令模式举例:将军通过传令兵来命令士兵攻击或者防守'''#命令class Command(object): def __init__(self): self.name = "Command" #执行命令
2017-11-07 09:41:26
207
原创 python设计模式(责任链模式)
学习版本3.5.2#学习版本3.5.2'''在责任链模式中,多个不同职能的对象连接起来形成一条链,请求在这个链上传递,直>到链接上有一个对象将请求处理完;发这个请求的客户端并不知道链上的哪一个对象最终处理了这个请求,这可以使得系统可以在不影响客户端的情况下动态的重新组织和分配责任'''#1到3类请求分别需要部门a到b来处理class Department(object): d
2017-11-06 16:34:44
225
原创 python的迭代器和生成器
学习版本3.5.21.迭代器在python中,很多对象都可以用for...in...语句来遍历里面的元素,这些对象被称为可迭代对象。例如:list, dict, string, set, generator...迭代器对象是实现了对象的__iter__()和__next__()方法(在python2.x中是next()方法)的对象,其中__iter__()方法返回迭代器对象本身,__n
2017-11-06 13:47:37
150
原创 python设计模式(观察者模式)
#学习版本3.5.2#观察者模式,它定义了一种一对多的依赖关系,让多个观察者同时监听某一个对象。这个#对象的状态发生变化时候,会通知所有的观察者,是他们能够得到最新的信息#例如:一个个奸细同时在监视小明,在他的身上安装的定位class Person(object): def __init__(self): self._observerlist = [] #
2017-11-03 11:06:37
167
原创 python设计模式(模版方法模式)
#学习版本3.5.2#模版方法模式,定义一个工作或者算法的基本流程骨架,将一些特定的流程步骤用继承的#方式来实现#该模式可以使得子类不改变一个算法的结构而重新定义算法的某些特定步骤#例如:出去旅游选择交通方式class Travel(object): def ready(self): print("ready for travel.") def tri
2017-11-03 10:24:06
188
原创 python设计模式(策略模式)
#学习版本3.5.2#策略模式,定义一些列算法,把每一个算法都封装起来,并且使它们可以相互替换。#该模式使得算法可独立于使用它的客户变化#例如:出去旅游选择交通方式class TravelStrategy(object): def travelAlgorithm(self): passclass AirPlaneStrategy(TravelStrategy)
2017-11-03 09:20:47
141
原创 python设计模式(建造者模式)
#学习版本3.5.2#建造者模式,固定生产过程用来生产同一类产品#例如:工厂生产高级车和普通车class CreateCar(object): def createWheel(self): pass def createCarBody(self): pass def create(self): passclass
2017-11-02 17:20:10
193
原创 python设计模式(享元模式)
学习版本3.5.2享元模式的概念:在一个系统中如果有多个相同的对象,那么只共享一份,不必每一个都去实例化一个对象。像python中的数字变量就是用的享元模式。写一个例子,用享元对象去存字符串,在享元对象的工厂中包涵了享元对象池。class Flyweight(object): def __init__(self, str): self.str = str
2017-11-02 16:13:04
245
原创 python设计模式(组合模式)
学习版本3.5.2组合模式的目的是将对象组合成树形结构来表示“整体-部分”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。举个例子:用组合模式去做一个简单的文件夹系统class BaseFile(object): def __init__(self, name): self.name = nameclass MyFolder(BaseFil
2017-11-02 13:40:53
275
原创 python设计模(桥接模式)
学习版本3.5.2桥接模式,就是将抽象部分有实现部分分离开来,是它们都能够独立变化。举一个例子:我有AB两类工人,他们都可以在12两个流水线上工作,可以随意分配他们去哪个流水线工作。class Worker(object): passclass WorkerTypeA(Worker): def work(self): return "A type w
2017-11-02 13:03:36
183
原创 python设计模式(外观模式)
学习版本3.5.2外观模式(Facade Pattern)向客户端提供一个可以访问系统的接口,隐藏了系统的复杂性。比如说,生产a产品需要abc三个流水线生产的零件,我只想管a产品的生产。class ProductionLineA(object): def create(self): print("create component a")class Pro
2017-11-02 10:11:42
170
原创 python设计模式(代理模式)
学习版本3.5.2为对象提供代理,用来控制对该对象的访问比如说火车票代购业务,你只需要告诉代购买什么样的车票并且付钱,然后代购就会去买好火车票给你,你不需要直接去火车站或者12306买车票。class TrainStation(object): def buyTicket(self): return "ticket"class ProxyBuyTicket(
2017-11-01 16:36:32
128
原创 python设计模式(适配器模式)
学习版本3.5.2对象适配器模式中,适配器中存一个需要被适配的类的对象,调用该对象的方法来实现。类适配器模式中,适配器继承需要被适配的类和目标类。例子:原本有一个用来打印信息的类,现在需要一个新的打印格式,在不修改原来的类的情况下,使用新的打印格式#对象适配器模式class OriginalPrint(object): def myprint(self, str1,
2017-11-01 10:19:29
194
原创 python设计模式(原型模式、单例模式)
学习版本3.5.21.原型模式原型模式就是拷贝一个对象实例去生成一个新的对象,当初始化过程复杂的时候这个方法就很方便。import copyclass CloneMyself(object): def shallow_copy(self): return copy.copy(self) def deep_copy(self): re
2017-10-31 16:24:48
220
原创 python实现设计模式(一、工厂模式)
学习版本3.5.21.简单工厂有一个工厂存在两个流水线,A流水线生产A零件,B流水线生产B零件,需要A零件的时候跟工厂说生产A零件,需要B零件的时候跟工厂说生产B零件。class ProductionLine(object): passclass ProductionLineA(ProductionLine): def create(self): p
2017-10-31 13:52:40
339
原创 python装饰器
学习版本3.5.2装饰器就是在不改变其它函数代码的情况下为它们加上新的功能。1.装饰器的语法糖@def deco(func): def _deco(): print("log before func") func() print("log affter func") return _decodef func1():
2017-10-30 15:01:17
148
原创 python的闭包与变量作用域
学习版本3.5.21.变量的作用域当你使用一个变量的时候,首先是在局部作用域中寻找该变量,然后在上一层的局部作用域中寻找,最后在全局作用域中找。
2017-10-30 10:01:50
334
原创 python中的copy与deepcopy
学习版本3.5.2copy和deepcopy都是copy模块中的函数,查看copy模块的帮助文档A shallow copy constructs a new compound object and then (to the extent possible) inserts *the same objects* into it that the original contains.
2017-10-26 14:02:00
183
原创 python可变类型与不可变类型
学习版本3.5.2python的基础类型数值、字符串和元组都是不可变类型,列表和字典时可变类型1.Number、字符串id(1) #4297546560id(2) #4297546592a = 1id(a) #4297546560a = 2id(a) #4297546592b = 1id(b) #4297546560str1 = 'hello'id(str1) #431
2017-10-26 10:10:34
2281
原创 python常用的几个内建函数
学习版本3.5.21.map()函数help(map)查看map的帮助文档map(func, *iterables) --> map objectMake an iterator that computes the function using arguments from each of the iterables. Stops when the shortes
2017-10-25 14:37:13
396
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人