![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python 开发之路
月守护
卡拉卡拉
展开
-
多线程队列实现并发
之前写过一个用python生成器实现单线程并发(做包子和吃包子)参看添加链接描述现在用多线程队列再实现一下:import timeimport threading #线程模块import queue #队列模块q=queue.Queue(10) #创建一个队列对象,允许放10个数据,不限类型def produce_baozi(n...原创 2019-06-15 17:45:05 · 507 阅读 · 0 评论 -
类和实例化对象的属性字典的一点总结
问题来源是一个报错class ggg: passprint(ggg.__dict__)ggg.__dict__["ffff"]=6报错:Traceback (most recent call last):{'__module__': '__main__', '__dict__': <attribute '__dict__' of 'ggg' objects>, '...原创 2019-06-09 17:55:02 · 558 阅读 · 0 评论 -
浅析python装饰器
1纯净装饰器'''内容:器即函数装饰即修饰,意指为其他函数添加新功能装饰器定义:本质就是函数,功能是为其他函数添加新功能装饰器=高阶函数+函数嵌套+闭包原则:1.不修改被装饰函数的源代码(开放封闭原则)2.为被装饰函数添加新功能后,不修改被修饰函数的调用方式'''#写好了装饰器import timedef timer(func): def qiantao():...原创 2019-06-15 17:41:42 · 216 阅读 · 0 评论 -
Python进程梳理
1 multiprocessing lesson"""进程和线共用一个API,大体都是一样的进程实现了并行,线程实现了并发只是子进程开一个会占用多一倍内存,所以不能过多,而线程无要求""""""一,调用库不同,两种实例化方式相同(这是必然的)"""#线程import threadingq=threading.Thread(target=fuuc,args=())from t...原创 2019-06-23 20:10:13 · 112 阅读 · 0 评论 -
Python协程梳理
1协程底层–生成器#一种实现协程的方法--生成器yielddef producer(): while True: i = yield 99999 print("第%s个包子做好了"%i)def consumer(): r=producer() r.__next__() count=1 while count<10:...原创 2019-06-23 20:16:26 · 131 阅读 · 0 评论 -
线程梳理
1 threading_lessonimport timeimport threadingdef music(stype,name): print("%s 开始听%s音乐"%(name,stype),time.ctime()) time.sleep(3) print("%s 结束听%s音乐" % (name, stype), time.ctime())def cod...原创 2019-06-15 17:35:36 · 173 阅读 · 0 评论 -
用python生成器实现单线程并发(做包子和吃包子)追加一种多线程队列实现并发
#第一种方法:单线程单过程,要等包子全部做好之后才能一个一个的吃import timedef produce_baozi(): res=[] for i in range(1,21): time.sleep(0.2) res.append("包子%s"%i) return resdef consume_baozi(x): for...原创 2019-05-31 21:24:58 · 571 阅读 · 0 评论 -
python生成器和列表解析
什么是生成器?可以理解为一种数据类型,这种数据自动实现了原创 2019-05-31 15:56:23 · 343 阅读 · 0 评论 -
【python】上下文协议
常见的上下文协议出现的地方有:1.文件操作的打开与关闭 with open('a.txt') as f: print(f.read())等同于f=open("人口")print(f.read())f.close()2.线程or进程加锁以线程加锁为例import threadingl=threading.Lock() #创建线程互斥锁 with l: #...原创 2019-07-18 17:08:43 · 327 阅读 · 0 评论 -
Python中的迭代器和为什么要有for循环
1.迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个 Stopiteration 异常,以终止迭代(只能往后走不能往前退)2.可迭代对象:实现了迭代器协议的对象(如何实现:调用对象内部定义的一个_iter_ 方法)3.协议是一种约定,可迭代对象是实现了迭代器协议,python的内部工具(如for循环,sum,map,reduce,fliter,max...原创 2019-05-30 23:22:37 · 1979 阅读 · 2 评论 -
python中使用函数递归return返回值为None的问题
先看之前写的代码:i = 0def hhh(): global i print(i) if i == 3: return i i=i+1 hhh()print(hhh())结果应该输出01233但实际却是:0123None这是为什么呢?首先, Return 的用法,调用函数的时候,如果没有执行 ret...原创 2019-05-30 11:39:15 · 12796 阅读 · 8 评论 -
Python中的拷贝
个人理解一共是有三种拷贝:拷贝(赋值),浅拷贝,深拷贝以a = [1, 2, 3, 4, ['a', 'b']] 为例;import copya = [1, 2, 3, 4, ['a', 'b']]b = a #赋值。传对象的引用c = copy.copy(a) #对象拷贝,浅拷贝d = copy.deepcopy(a) #对象拷贝,深拷贝e = a[:] #利用...原创 2019-07-16 13:06:34 · 291 阅读 · 0 评论 -
用描述符自定制静态属性property,静态方法staticmethod,类方法classmethod
一.自定制静态属性propertyclass Lazyproperty: def __init__(self, func): self.func = func def __get__(self, instance, owner): print("get") if instance is None: retur...原创 2019-06-10 13:01:09 · 182 阅读 · 0 评论 -
Python面向对象基础
首先面向对象是一种编程思想,它是通用的绝对不是说在Python只有用class编程才是面向对象编程,class只是Python提供给我们用来面向对象编程的一种语法结构下面用纯函数来进行面向对象编程:def dog(name,gender,type): def chishi(dog): print("%s吃了shi"%dog["name"]) def jiao(...原创 2019-06-27 12:05:55 · 126 阅读 · 0 评论 -
python socket编程之udp
一样从C/S架构开始:一个简单的客户端发送消息后,服务端处理成大写的结果之后返回给客户端##基于udp协议下的C/S架构之服务端from socket import *udp_server=socket(AF_INET,SOCK_DGRAM)ip_port=("127.0.0.1",8080)buffer_size=1024udp_server.bind(ip_port)while...原创 2019-06-12 13:49:24 · 642 阅读 · 0 评论 -
python socket编程之tcp
由C/S架构开始#基于tcp协议下的C/S架构之服务端from socket import *tcp_server=socket(AF_INET,SOCK_STREAM)ip_port=("127.0.0.1",8080)back_log=5buffer_size=1024tcp_server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #就是它,在b...原创 2019-06-11 21:14:04 · 619 阅读 · 0 评论 -
面向对象之继承
python中支持多继承,python3中同意都是新式类,采用广度优先class C(): def __init__(self): print("执行C") self.ww=234class B(): def __init__(self): self.qq=123 print("执行B") supe...原创 2019-08-03 14:16:25 · 75 阅读 · 0 评论