随笔分类 -  Python高级

网络编程,多任务,进程,进程池,线程,协程,正则,linux常用基础命令
摘要:class Person(): def __init__(self): self.__age = 0 def set_age(self, age): if age 200: self.__age = 0 else: self.__age = age def get_age... 阅读全文
posted @ 2018-06-08 18:40 汪凡 阅读(200) 评论(0) 推荐(0)
摘要:在实现用户验证的登录的时候可以使用装饰器工厂产生装饰器,让装饰器得到参数,从而判断登录类型,并验证用户登录条件,代码实现如下: 阅读全文
posted @ 2018-06-08 18:37 汪凡 阅读(1499) 评论(0) 推荐(0)
摘要:import socket if __name__ == '__main__': # 创建udpsocket udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 设置socket选项, 开启发送广播消息的功能 # 1. SOL_SOCKET:当前socket # 2. SO_BR... 阅读全文
posted @ 2018-05-31 14:57 汪凡 阅读(1708) 评论(0) 推荐(0)
摘要:当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。 初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Po 阅读全文
posted @ 2018-05-29 20:44 汪凡 阅读(283) 评论(1) 推荐(1)
摘要:1. Queue的使用 可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理: 运行结果: 初始化Queue()对象时(例如:q=Queue()),若括号中没有指定最大可接收的消息数量,或数量 阅读全文
posted @ 2018-05-29 20:24 汪凡 阅读(231) 评论(0) 推荐(0)
摘要:import socket import threading def send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" while True: # 1. 从键盘输入数据 msg = input("\n请输入要发送的数据:") # 2. 输入对方的ip地址 dest_ip = ... 阅读全文
posted @ 2018-05-29 20:09 汪凡 阅读(151) 评论(0) 推荐(0)
摘要:flist = [] # 创建了一个空列表 for i in range(3): # 循环三次 def foo(x): # 定义三次函数 print (x + i) flist.append(foo) # 把三次函数的引用放到列表中 for a in flist: # 按个遍历列表里的三个函数的引用 a(2) # 每个... 阅读全文
posted @ 2018-05-29 14:01 汪凡 阅读(290) 评论(0) 推荐(0)
摘要:import socket import gevent from gevent import monkey monkey.patch_all() def cb_work(recv_num,send_num): while True: recv_data=list_client[recv_num][0].recv(1024).decode("gbk") ... 阅读全文
posted @ 2018-05-29 13:53 汪凡 阅读(721) 评论(0) 推荐(0)
摘要:import re str='sfafsf,34234234234,1231313132,37132719991123463x,sdefgr54184785ds85,' \ '4864465asf86845,372526198911233456' con = re.findall(r'[\d]{17}[0-9xX]' , str) for i in con: print('身... 阅读全文
posted @ 2018-05-29 13:50 汪凡 阅读(252) 评论(0) 推荐(0)
摘要:这里我们暂且先不提全局解释器锁,从这个代码例子里我们可以看出,一个锁在上锁以后,如果在没有释放它的情况下再要对它上锁,他就会阻塞住,一直到它的锁被释放了以后才能够再次被上锁,这样就实现了两个线程的交替执行。 阅读全文
posted @ 2018-05-29 13:46 汪凡 阅读(206) 评论(0) 推荐(0)
摘要:客户端: 服务端: 阅读全文
posted @ 2018-05-29 12:42 汪凡 阅读(404) 评论(0) 推荐(0)
摘要:这里让客户端给服务端发送的数据被服务端自动发回来 客户端: 服务端: 服务端这里不需要编码或者解码,直接回发就行 阅读全文
posted @ 2018-05-29 12:37 汪凡 阅读(493) 评论(0) 推荐(0)
摘要:客户端: 服务端: 阅读全文
posted @ 2018-05-29 12:32 汪凡 阅读(829) 评论(0) 推荐(0)
摘要:import socket if __name__ == '__main__': # 创建tcp服务端socket tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 立即释放端口号,重用端口 # SOL_SOCKET: 表示当前socket # SO_REUSE... 阅读全文
posted @ 2018-05-29 12:29 汪凡 阅读(321) 评论(0) 推荐(0)
摘要:import socket # 和udp的区别显而易见,udp发送和接收的是一个元祖,因为udp是不建立连接的,只有得到了对方的端口和ip才能进行沟通。 # 而tcp不是,tcp发送和接受的是一个字符串,因为在进行通信前必须先建立好连接确定好了ip以及端口, # 所以不用在接受和发送的时候去特地的发送或者接受端口号和ip地址。 # 总结来说TCP有以下几点: # 面向连接(确认有创建三... 阅读全文
posted @ 2018-05-29 12:27 汪凡 阅读(388) 评论(0) 推荐(0)
摘要:VIM - Vi IMproved 7.4 编辑器操作汇总 vim [参数] [文件 ..] 编辑指定的文件 或: vim [参数] - 从标准输入(stdin)读取文本 或: vim [参数] -t tag 编辑 tag 定义处的文件 或: vim [参数] -q [errorfile] 编辑第一 阅读全文
posted @ 2018-05-13 01:07 汪凡 阅读(8235) 评论(0) 推荐(0)
摘要:1. 快速启动终端:ctr+alt+t2. 终端字体放大: ctr+shift+'+'3. 终端字体缩小: ctr+'-'4. ls: 查看当前目录下文件信息 4.1 ls BD ABC 同时查看两个目录5. pwd: 查看目录的路径6. touch: 创建文件 6.1 touch 1.txt 2. 阅读全文
posted @ 2018-05-13 00:40 汪凡 阅读(384) 评论(0) 推荐(0)
摘要:首先关于在python中单线程,多线程,多进程对cpu的利用率实测如下: 单线程,多线程,多进程测试代码使用死循环。 1)单线程: 2)多线程: 3)多进程: 查看cpu使用效率: 开始观察分别执行时候cpu的使用效率: 1)单线程执行的时候: 2)多线程执行的时候: 3)多进程执行的时候: 总结: 阅读全文
posted @ 2018-05-13 00:17 汪凡 阅读(4815) 评论(4) 推荐(0)
摘要:Fibonacci数列,数列中第一个数为0,第二个数为1,其后的每一个数都可由前两个数相加得到: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... 阅读全文
posted @ 2018-05-08 16:06 汪凡 阅读(679) 评论(0) 推荐(0)
摘要:1、创建客户端socket开始进行通讯。2、这时服务端应该先启动,并在知道服务端的ip以及端口号的时候才能进行通讯。3、本地不需要绑定ip以及端口号,在用此套接字对象发送消息的时候会自动分配活动端口(1024-65535) 每次重启程序可能每次都不一样。4、然后对将要发送的信息进行编码处理,然后将编 阅读全文
posted @ 2018-05-08 14:41 汪凡 阅读(5429) 评论(0) 推荐(0)