3 上海_彭彭

尚未进行身份认证

暂无相关描述

等级
博文 158
排名 3w+

一分钟明白 Python-unittest ddt数据驱动

importunittestfromddtimportddt,data,unpack,file_dataimportcsvdefmyList(a,b):r=[a,b]returnr#读取cvs文件数据defgetCsv(file_name):rows=[]withopen(file_name,encoding='utf...

2019-07-09 17:43:29

python selenium 用js删除 readonly属性

当我们想在输入框是日期类型,并send_keys的时候发现不能输入,要么你搞日历这个很麻烦,还有一个方法用js,非常简单selenium+python操作js页面,删除某个元素例子如下:删除元素D下面readonly属性d=driver.find_element_by_xpath("//*[@id='divform']/div[2]/ul[2]/li[3]/span[2]/input...

2019-07-09 17:25:05

python高级进阶_36_熟悉tftp协议代码模拟下载过程

代码如下:#-*-coding:utf-8-*-importstructfromsocketimport*importtimeimportosdefmain(): #0.获取要下载的文件名字: downloadFileName=input("请输入要下载的文件名:") #1.创建socket udpSocket=socket(AF_INE...

2019-07-03 09:13:26

python高级进阶_35_一分钟明白TCP/IP网络通信过程

在面试的经常会问到这个问题,网络传输的过程经历了哪些?正好看到这一节的内容,我就随便总结一下,尽量用简单的语言解释好这个问题。####先声明下,当面试官问TCP/IP的时候,不要回答TCP/IP两个协议,当你这样回答的时候,估计面试官心凉,可以回去喝茶了,它是个协议族,是整个网络传输的总称。先看一下图他的执行过程是这样的当应用层发送一句话比如:“这段话将要传输到...

2019-06-23 13:24:54

python高级进阶_33_使用socket 模拟UDP服务器接收信息

在写服务端的时候,一定要明白一个事情就是绑定端口和ip。有的人该问了在写发送方的时候,为什么没有写ip和端口解释如下:发送方的IP可以是动态的,是由操作系统自动分配的,发送方只是客户端,服务器不会关心你的客户端的ip,只要发送我就接受。但是服务器端如果不绑定ip,当客户端发送信息的时候,找不到ip路由,就是达不到你这个机器上,有个规定当你不绑定的时候,默认...

2019-06-23 12:51:50

python高级进阶_32_使用socket 模拟UDP 和TCP 发送消息

前面在学习多进程之间通信用到QUEQUE,那也只是在同一台电脑,进行通信,那如何在不同的电脑传输数据呢,就用到了网络传输,以后的章节我都写网络编程的知识。首先我们要了解IP和端口两个概念,当我们把一个消息发送到电脑qq里,为什么他能找到你的电脑呢,就是用IP协议,为什么找到你的电脑也能找你的qq呢,为什么不发到微信里,说明用到了端口号。端口是分辨电脑里...

2019-06-22 22:25:48

python高级进阶_31_Python中ThreadLocal的理解与使用(使用全局变量保存私有属性)

一、对ThreadLocal的理解ThreadLocal,有的人叫它线程本地变量,也有的人叫它线程本地存储,其实意思一样。   ThreadLocal在每一个变量中都会创建一个副本,每个线程都可以访问自己内部的副本变量。二、为什么会出现ThreadLocal的技术应用我们知道多线程环境下,每一个线程均可以使用所属进程的全局变量。如果一个线程对全局变量进行了修改,将会影响到其他所有的...

2019-06-22 16:06:24

python高级进阶_30_一分钟明白异步概念以及作用

经过和我们群里的讨论,最终一致认为这两个概念应该如下理解:同步调用:它是属于阻塞类型,举个例子我去星巴克去喝咖啡,我到地方了,我说要一杯加糖加奶的咖啡,服务员说了,你等会吧,我就什么都不做,就一直傻傻等,什么时候美女递过来了我才回去。异步调用:它是属于非阻塞类型,同样也是订购咖啡,服务员说了,你等会吧,要是异步怎么处理呢,就给服务员说了,我去看书,等你什么时候做好了,你告诉我下...

2019-06-22 15:39:22

python高级进阶_29_生产者和消费者 设计模式

当我看到生产者和消费者模式后,让我激动不已,想起来一个词语,数学之美,如果你能从中体会到魅力之处,我相信你一定会开心的笑起来。生产者和消费者设计模式使用的场景?答:只要看到一边生产数据,一边处理数据的时候,就可以用到这个模式使用这个有什么好处?第一:一个类就做一件事情,这样就可以使用多线程,全部都放一个类你多线程不好搞,还有一个好处,修改代码容易看,并不是...

2019-06-22 12:12:14

python高级进阶_28_线程同步概念理解与使用方法

线程中有四个概念比较重要,阻塞,非阻塞,同步,异步阻塞:就是只有当阻塞的程序运行完了,你才能结束,它不完成你就一定要等待直到结束后,你再结束,前面我们介绍的线程或者进程的join(),他们也是等待子线程或者子进程完成之后才能结束。非阻塞:他们的线程或者进程之间没有关系,根本没有线程或者主进程等待之说,也有可能主线程结束了,你也没有结束,直接中断子线程的运行。...

2019-06-21 21:47:44

python高级进阶_27_经典死锁案例讲解

死锁的概念解读为:一个进程或者线程占用了资源,不能进行释放,导致另一个线程等待他一直等不到,导致程序一直等待,进入一个假死状态。引起死锁有两种方式:迭代锁相互引用锁迭代锁是由于重复上锁导致的死锁,代码如下:该情况是一个线程“迭代”请求同一个资源,直接就会造成死锁:importthreadingfromthreadingimportThread,Lockd...

2019-06-21 14:13:32

python高级进阶_26_多线程锁会遇到的问题总结

先看上一节的代码,我们再改良下,看看是什么效果?下边的代码,细心的小伙伴可以看出,本来是多线程却让你逼成单线程,因为在加锁和释放锁都是在循环计算的外边,也就是在线程一执行完后再执行线程二,importthreading,timedefwork1():globalnummutex.acquire()#上锁foriinran...

2019-06-20 14:16:50

python高级进阶_25_避免并发引起的问题(全局变量计算错误)02

上一节我们讲了避免并发的问题,可以用轮询的方法可以解决。轮询方法但是有个缺点就是用死循环浪费CPU.针对这样的问题,python设计了互斥锁把代码改下:importthreading,timedefwork1():globalnummutex.acquire()#上锁foriinrange(100000):n...

2019-06-19 23:49:19

python高级进阶_25_避免并发引起的问题(全局变量计算错误)01

上一接我留一个问题,为什么全局变量每次运行的结果不一样?当计算的值越大出错的概率越大。因为多线程会有同时抓到全局变量修改,没有按照顺序同步解析错误过程比如线程1找到的全局变量为1开始+1,线程2也找到了全局变量为1也开始+1,线程1把计算的结果2赋值给全局变量结果为2,线程二也开始把计算的结果为2赋值给全局变量2解决方法知道了错误过程,应该怎么...

2019-06-19 23:18:02

python高级进阶_24_代码演示多线程之间 共享全局变量

在学习多进程的时候,我们说过他们的数据是隔离的,如果想进程之间的数据传递,必须用queue等方式达到数据的传递。但是多线程有个特点,它是共享全局变量的,仔细观察下,下边的代码:importthreading,timeclassMyThread(threading.Thread):defrun(self):foriinrange(4):...

2019-06-17 22:43:05

python高级进阶_23_验证多线程的执行顺序

请看代码根据代码识别,多线程的执行顺序importthreading,timeclassMyThread(threading.Thread):defrun(self):foriinrange(4):time.sleep(1)print("线程的任务序号为:-----%d----我是自定义类造的线...

2019-06-17 22:16:51

python高级进阶_22_使用自定义的类完成多线程多任务

咱们在多进程里,如果想自定义类,就必须继承Process类,然后重写了run方法,直接调用咱们的自定义类就可以完成,同理,多线程也是可以这么实现的,怎么做的呢,直接继承threading.Thread,然后重写run方法。示例代码如下:importthreading,timeclassMyThread(threading.Thread):defrun...

2019-06-17 20:39:20

python高级进阶_21_使用threading 完成多线程多任务

前面说的多进程可以完成多任务,为什么还需要讲多线程呢,多进程是copy一份代码,然后再执行,就相当于你电脑上安装了两个微信,同时运行。有个问题就是如果想实现一个微信聊天开多个窗口呢,这个是多进程是无法实现的,是在一个代码块里实现多任务,那就用到了多线程。多线程–threadingpython的thread模块比较底层,而threading是对thread做了一...

2019-06-17 19:15:16

python高级进阶_20_进程之间的通信之queue(Poo演示)

frommultiprocessingimportManager,Poolimportrandom,time,osdefwrite(q):foriinrange(10):q.put(i)print("正在添加=====%d====到queue"%i)time.sleep(1)defread(q):...

2019-06-17 14:01:58

python高级进阶_20_进程之间的通信之queue(Process演示)

咱们先搞清楚

2019-06-17 13:46:19
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。