Python

Python多线程编程(一):threading模块综述

Python这门解释性语言也有专门的线程模型,Python虚拟机使用GIL(GlobalInterpreterLock,全局解释器锁)来互斥线程对共享资源的访问,但暂时无法利用多处理器的优势。在Python中我们主要是通过thread和threading这两个模块来实现的,其中Python的threading模块是对thread做了一些包装的,可以更加方便的被使用,所以我们使用threading模块实现多线程编程。这篇文章我们主要来看看Python对多线程

系统 2019-09-27 17:51:00 1986

Python

Python多线程编程(六):可重入锁RLock

考虑这种情况:如果一个线程遇到锁嵌套的情况该怎么办,这个嵌套是指当我一个线程在获取临界资源时,又需要再次获取。根据这种情况,代码如下:复制代码代码如下:'''Createdon2012-9-8@author:walfred@module:thread.ThreadTest6'''importthreadingimporttimecounter=0mutex=threading.Lock()classMyThread(threading.Thread):de

系统 2019-09-27 17:50:55 1986

Python

selenium2.0中常用的python函数汇总

本文总结分析了selenium2.0中常用的python函数。分享给大家供大家参考,具体如下:新建实例driver=webdriver.Firefox()此处定位均使用的百度首页输入框1.通过标签属性Id查找元素方法:find_element_by_id(element_id)实例:driver.find_element_by_id("kw")2.通过标签属性name查找元素方法:find_element_by_name(element_name)实例:d

系统 2019-09-27 17:50:52 1986

Python

python 常用模块之——pymysql

pymysqldemo代码样例,暂时先写查询的,增删改后续再添加;通用部分无论是增删改查,都需要先建立数据库连接,创建游标importpymysql#建立一个mysql的conn,返回Connetion对象conn=pymysql.connect(host='localhost',user='root',passwd='p@ssWD',port='3306',db='test')#新建一个游标,默认返还元组,可选DictCursor让查询结果返还dict#

系统 2019-09-27 17:50:47 1986

Python

python的浅拷贝与深拷贝

什么是浅拷贝?先看一个例子a=[1,2,3,4]b=aa.pop(0)print(a)print(b)输出:[2,3,4][2,3,4]正常对于这种可变对象的这种赋值,会导致a和b指向一个内存地址,而我们将a中的第0个元素剔除后,实质就是改变了对应的内存地址中的数值,所以会导致b也发生变化下面看一下浅拷贝:a=[1,2,3,4]b=a.copy()a.pop(0)print(a)print(b)输出[2,3,4][1,2,3,4]这种就是浅拷贝,拷贝的列表

系统 2019-09-27 17:50:34 1986

Python

Python脚本和C#的互相调用

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。是一门动态解释型语言,也是一门胶水语言,很方面调用其它编程语言的程序。比如:C/C++,C#等等。这里介绍一下Python和C#的互相调用。IronPython是一种在.NET及Mono上的Python实现,由微软的JimHugunin所发起,是一个开源的项目,基于微软的DLR引擎。IronPython是流行的程序设计语言Python通向.NETframework的一个端口。微软公司对于.

系统 2019-09-27 17:50:24 1986

Python

python 备份zk配置项

使用python脚本备份zk中的配置python备份代码python3back.pyimportosimportos.pathfromkazoo.clientimportKazooClientfromkazoo.clientimportKazooStatezk=KazooClient('test:2181')zk.start()zkBashPath="/conf/base/"backUp_path="/tmp/test/"cs=zk.get_childre

系统 2019-09-27 17:50:23 1986

Python

Python理解递归的方法总结

递归一个函数在执行过程中一次或多次调用其本身便是递归,就像是俄罗斯套娃一样,一个娃娃里包含另一个娃娃。递归其实是程序设计语言学习过程中很快就会接触到的东西,但有关递归的理解可能还会有一些遗漏,下面对此方面进行更加深入的理解递归的分类这里根据递归调用的数量分为线性递归、二路递归与多重递归线性递归如果一个递归调用最多开始一个其他递归调用,我们称之为线性递归。例如:defbinary_search(data,target,low,high):"""二分查找,对有

系统 2019-09-27 17:50:01 1986

Python

centos python3.4更新到3.6

centospython3.4更新到3.6python3.4是yum安装的就直接执行命令:yumupdatepython34-y如果是通过源码安装的,就需要下3.6源码包,重新解压,编译,安装

系统 2019-09-27 17:50:00 1986

Python

python3.6生成器yield用法实例分析

本文实例讲述了python3.6生成器yield用法。分享给大家供大家参考,具体如下:今天看源码的时候看到了一个比较有意思的函数:yield功能与return类似,都是返回定义的函数的一个结果,不同的是return返回后这次调用函数就结束了,除了返回值,其余临时变量都会被清除。而yield会停止在当前步,并保留其余变量的值,等下次调用该函数时,从yield的下一步继续往下运行。yield的好处是如果函数需要很大的内存,比方说需要计算并返回一个很大的数列,如

系统 2019-09-27 17:49:49 1986

Python

浅谈python新式类和旧式类区别

python的新式类是2.2版本引进来的,我们可以将之前的类叫做经典类或者旧式类。为什么要在2.2中引进newstyleclass呢?官方给的解释是:为了统一类(class)和类型(type)。在2.2之前,比如2.1版本中,类和类型是不同的,如a是ClassA的一个实例,那么a.__class__返回‘class__main__.ClassA‘,type(a)返回总是。而引入新类后,比如ClassB是个新类,b是ClassB的实例,b.__class__

系统 2019-09-27 17:49:33 1986

Python

Python爬出基础编程

阅读更多初学Python爬虫时都会从最简单的方法开始,以下为几种常见的基础做法。"""简单的循环处理"""importrequestsurl_list=["https://www.baidu.com","https://www.cnblogs.com/"]forurlinurl_list:result=requests.get(url)print(result.text)"""线程池处理"""importrequestsfromconcurrent.fut

系统 2019-09-27 17:49:32 1986

Python

二叉树的层序遍历(python)

剑指offer:从上到下打印二叉树题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。结果:[8,6,10,5,7,9,11]解题思路典型的使用队列的题目。每从队列头部获取一个节点,就将该节点的左右子节点存入队列的尾部。如此往复,直至队列为空。代码#coding:utf-8classSolution:#从上往下打印出二叉树的每个节点,同层节点从左至右打印defPrintFromTopToBottom(self,root):array=[]resu

系统 2019-09-27 17:49:17 1986

Python

Python调用C

文章作者:Tyan博客:noahsnail.com|CSDN|简书1.引言众所周知,Python语言简单、易学、开源、具有丰富的库,Python的第一个编译器是用C语言实现的。但Python的缺点也非常明显,最让人诟病的就是Python的性能问题。因此,为了提高程序的运行效率,通常会将程序的关键部分使用C或C++重写,编译成动态链接库,然后在Python(CPython)中进行调用。运行环境:Ubuntu16.04、Python2.7、Python3.5。

系统 2019-09-27 17:49:17 1986

Python

Python3.x版本中新的字符串格式化方法

我们知道Python3.x引入了新的字符串格式化语法。不同于Python2.x的复制代码代码如下:"%s%s"%(a,b)Python3.x是复制代码代码如下:"{0}{1}".format(a,b)今天我在用MySQLdb时,需要用带参数的复制代码代码如下:cursor.execute(sql,param)语句来完成SQL操作。被其他文章的陈旧说法给误导,用了复制代码代码如下:cursor.execute('insertintotestvalues(%s

系统 2019-09-27 17:48:45 1986