python 开发之路
月守护
卡拉卡拉
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程队列实现并发
之前写过一个 用python生成器实现单线程并发(做包子和吃包子) 参看添加链接描述 现在用多线程队列再实现一下: import time import threading #线程模块 import queue #队列模块 q=queue.Queue(10) #创建一个队列对象,允许放10个数据,不限类型 def produce_baozi(n...原创 2019-06-15 17:45:05 · 550 阅读 · 0 评论 -
类和实例化对象的属性字典的一点总结
问题来源是一个报错 class ggg: pass print(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 · 606 阅读 · 0 评论 -
浅析python装饰器
1纯净装饰器 ''' 内容: 器即函数 装饰即修饰,意指为其他函数添加新功能 装饰器定义:本质就是函数,功能是为其他函数添加新功能 装饰器=高阶函数+函数嵌套+闭包 原则: 1.不修改被装饰函数的源代码(开放封闭原则) 2.为被装饰函数添加新功能后,不修改被修饰函数的调用方式 ''' #写好了装饰器 import time def timer(func): def qiantao(): ...原创 2019-06-15 17:41:42 · 251 阅读 · 0 评论 -
Python进程梳理
1 multiprocessing lesson """ 进程和线共用一个API,大体都是一样的 进程实现了并行,线程实现了并发 只是子进程开一个会占用多一倍内存,所以不能过多,而线程无要求 """ """ 一,调用库不同,两种实例化方式相同(这是必然的) """ #线程 import threading q=threading.Thread(target=fuuc,args=()) from t...原创 2019-06-23 20:10:13 · 150 阅读 · 0 评论 -
Python协程梳理
1协程底层–生成器 #一种实现协程的方法--生成器yield def 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 · 171 阅读 · 0 评论 -
线程梳理
1 threading_lesson import time import threading def 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 · 204 阅读 · 0 评论 -
用python生成器实现单线程并发(做包子和吃包子)追加一种多线程队列实现并发
#第一种方法:单线程单过程,要等包子全部做好之后才能一个一个的吃 import time def produce_baozi(): res=[] for i in range(1,21): time.sleep(0.2) res.append("包子%s"%i) return res def consume_baozi(x): for...原创 2019-05-31 21:24:58 · 618 阅读 · 0 评论 -
python生成器和列表解析
什么是生成器? 可以理解为一种数据类型,这种数据自动实现了原创 2019-05-31 15:56:23 · 387 阅读 · 0 评论 -
【python】上下文协议
常见的上下文协议出现的地方有: 1.文件操作的打开与关闭 with open('a.txt') as f: print(f.read()) 等同于 f=open("人口") print(f.read()) f.close() 2.线程or进程加锁 以线程加锁为例 import threading l=threading.Lock() #创建线程互斥锁 with l: #...原创 2019-07-18 17:08:43 · 363 阅读 · 0 评论 -
Python中的迭代器和为什么要有for循环
1.迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个 Stopiteration 异常,以终止迭代(只能往后走不能往前退) 2.可迭代对象:实现了迭代器协议的对象 (如何实现:调用对象内部定义的一个_iter_ 方法) 3.协议是一种约定,可迭代对象是实现了迭代器协议,python的内部工具(如for循环,sum,map,reduce,fliter,max...原创 2019-05-30 23:22:37 · 2045 阅读 · 2 评论 -
python中使用函数递归return返回值为None的问题
先看之前写的代码: i = 0 def hhh(): global i print(i) if i == 3: return i i=i+1 hhh() print(hhh()) 结果应该输出 0 1 2 3 3 但实际却是: 0 1 2 3 None 这是为什么呢? 首先, Return 的用法,调用函数的时候,如果没有执行 ret...原创 2019-05-30 11:39:15 · 13128 阅读 · 8 评论 -
Python中的拷贝
个人理解一共是有三种拷贝:拷贝(赋值),浅拷贝,深拷贝 以a = [1, 2, 3, 4, ['a', 'b']] 为例; import copy a = [1, 2, 3, 4, ['a', 'b']] b = a #赋值。传对象的引用 c = copy.copy(a) #对象拷贝,浅拷贝 d = copy.deepcopy(a) #对象拷贝,深拷贝 e = a[:] #利用...原创 2019-07-16 13:06:34 · 357 阅读 · 0 评论 -
用描述符自定制静态属性property,静态方法staticmethod,类方法classmethod
一.自定制静态属性property class 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 · 224 阅读 · 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 · 171 阅读 · 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=1024 udp_server.bind(ip_port) while...原创 2019-06-12 13:49:24 · 693 阅读 · 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=5 buffer_size=1024 tcp_server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #就是它,在b...原创 2019-06-11 21:14:04 · 675 阅读 · 0 评论 -
面向对象之继承
python中支持多继承,python3中同意都是新式类,采用广度优先 class C(): def __init__(self): print("执行C") self.ww=234 class B(): def __init__(self): self.qq=123 print("执行B") supe...原创 2019-08-03 14:16:25 · 104 阅读 · 0 评论
分享