摘要:
pass 利用greenlet完成yield的功能,实现自动切换。(yield的工作原理请参考:https://www.cnblogs.com/yeyu1314/p/12590743.html) from greenlet import greenlet import gevent def task
阅读全文
posted @ 2020-03-28 19:39
yeyu1314
阅读(92)
推荐(0)
编辑
摘要:
利用socket模拟http的工作流程。 import socket def server_client(new_socket): """为这个客户端返回数""" # 1. 接收浏览器发送过来的请求,即http请求 # GET / HTTP/1.1 # ... request = new_socke
阅读全文
posted @ 2020-03-28 10:32
yeyu1314
阅读(160)
推荐(0)
编辑
摘要:
单个匹配 组合匹配,注意:正面的组合单独是没有意义的。必须和字符串等组合在一起。 加了$,要么匹配成功,要么失败。而不像上图一样,匹配的不正确,但是结果却成功了 下面是两个小案例 import re # 判断变量名是否符合规则 name = ['asdsf', '%asdf', '__!', 'a'
阅读全文
posted @ 2020-03-27 08:01
yeyu1314
阅读(128)
推荐(0)
编辑
摘要:
概念:多个进程存储在pool里,就形成了进程池。 作用: 由于创建和消毁进程是需要大量的资源维持的,所以我们可以把一些进程放到pool里。 from multiprocessing import Pool import os import time import random def worker(
阅读全文
posted @ 2020-03-26 17:58
yeyu1314
阅读(100)
推荐(0)
编辑
摘要:
原理与解释待补 import multiprocessing def download_from_web(q): # 模拟数据下载 data = [11, 22, 33, 44] # 向队列中写入数据 for temp in data: q.put(temp) print('下载完成,已经存到队列中
阅读全文
posted @ 2020-03-26 17:15
yeyu1314
阅读(145)
推荐(0)
编辑
摘要:
进程,我们可以理解为打开一个程序 ,比如,打开两个QQ,就是两个进程。 python中,进程模块,就相当于复制了一份代码,然后执行代码。进程会相当消耗内存 多进程与多线程的用法完全一样。
阅读全文
posted @ 2020-03-26 14:44
yeyu1314
阅读(84)
推荐(0)
编辑
摘要:
import threading import time init_total = 0 lock = threading.Lock() def test_01(): global init_total lock.acquire() for i in range(100000): init_total
阅读全文
posted @ 2020-03-26 09:31
yeyu1314
阅读(109)
推荐(0)
编辑
摘要:
工作原理: 1. 分配内存空间 2. 返回内存地址 重写__new__方法 class Test(object): def __new__(cls, *args, **kwargs): # 1. 创建对象时,new方法会自动调用 print('创建对象,分配内存空间') # 2. 为对象分配空间 r
阅读全文
posted @ 2020-03-25 17:20
yeyu1314
阅读(136)
推荐(0)
编辑
摘要:
class Game(object): top_score = 0 # 类属性 def __init__(self, name): self.name = name # 实例属性 @staticmethod def show_help(): # 静态方法 print('帮助信息:。。。') @cla
阅读全文
posted @ 2020-03-25 17:19
yeyu1314
阅读(128)
推荐(0)
编辑
posted @ 2020-03-25 17:18
yeyu1314
阅读(113)
推荐(0)
编辑