拥有Python标签的文章
Python

如何编写快速且线程安全的Python代码

概述如今我也是使用Python写代码好多年了,但是我却很少关心GIL的内部机制,导致在写Python多线程程序的时候。今天我们就来看看CPython的源代码,探索一下GIL的源码,了解为什么Python里要存在这个GIL,过程中我会给出一些示例来帮助大家更好的理解GIL。GIL概览有如下代码:staticPyThread_type_lockinterpreter_lock=0;/*ThisistheGIL*/这行代码位于Python2.7源码ceval.c

系统 2019-09-27 17:52:42 1697

Python

python并发编程多进程 互斥锁原理解析

运行多进程每个子进程的内存空间是互相隔离的进程之间数据不能共享的互斥锁但是进程之间都是运行在一个操作系统上,进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是可以的,而共享带来的是竞争,竞争带来的结果就是错乱#并发运行,效率高,但竞争同一打印终端,带来了打印错乱frommultiprocessingimportProcessimporttimedeftask(name):print("%s1"%name)time.slee

系统 2019-09-27 17:52:42 1697

Python

Python字典遍历的几种方法

转https://www.cnblogs.com/ducklu/p/8943903.html1.遍历key值1>>>d={'Python':'astonishing','C++':'complicated','Java':'versatile'}2>>>forkeyind:3...print(key+':'+d[key])4...5Python:astonishing6C++:complicated7Java:versatile同理,可把下列代码的d改为d

系统 2019-09-27 17:52:37 1697

Python

明天找python工作,看看这几道Python面试题吧,Python面试题

第1题:如何解决验证码的问题,用什么模块,听过哪些人工打码平台?PIL、pytesser、tesseract模块平台的话有:(打码平台特殊,不保证时效性)云打码挣码斐斐打码若快打码超级鹰第2题:ip被封了怎么解决,自己做过ip池么?关于ip可以通过ip代理池来解决问题ip代理池相关的可以在github上搜索ipproxy自己选一个去说https://github.com/awolfly9/IPProxyTool提供大体思路:获取器通过requests的爬虫

系统 2019-09-27 17:52:35 1697

Python

python 虚拟环境

mkvirtualenv-ppython3环境名创建虚拟环境rmvirtualenv环境名删除环境进入虚拟环境workon环境名(workon+tab可以出来所有环境)查看环境下所有包pip3list查看环境下安装的包(不包括原生python包)pip3freeze依赖包文件生成pip3freeze>requirements.txt环境导入依赖包pip3install-rrequirements.txt普通安装pip3install包名这是linux下的指

系统 2019-09-27 17:52:34 1697

Python

Python中使用select模块实现非阻塞的IO

Socket的英文原义是“孔”或“插座”。作为BSDUNIX的进程通信机制,取后一种意思。通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电,有的提供110伏交流电,有的

系统 2019-09-27 17:52:33 1697

Python

Python进程间通信Queue消息队列用法分析

本文实例讲述了Python进程间通信Queue消息队列用法。分享给大家供大家参考,具体如下:进程间通信-QueueProcess之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。1.Queue的使用可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示下Queue的工作原理:代码如下:#coding=utf-8frommultiprocessingimportQue

系统 2019-09-27 17:52:28 1697

Python

Windows系统下安装Python的SSH模块教程

Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在Python中使用SSH,则需要先安装模块顺序是:pycrypto->ecdsa->paramiko1、安装pyCrypto安装这个比较麻烦,需要本地编译,要装vs或gcc还有一堆配置,还不一定能编译成功。(网上能搜到安装步骤)建议直接下载已编译版:http://www.voidspace.org.uk/p

系统 2019-09-27 17:52:27 1697

Python

详解Python自建logging模块

简单使用最开始,我们用最短的代码体验一下logging的基本功能。importlogginglogger=logging.getLogger()logging.basicConfig()logger.setLevel('DEBUG')logger.debug('logsomething')#输出out>>DEBG:root:logsomething第一步,通过logging.getLogger函数,获取一个loger对象,但这个对象暂时是无法使用的。第二步

系统 2019-09-27 17:52:26 1697

Python

Python核心基础(二):魔法函数

一:什么是魔法函数看一个简单的例子:classCompany:def__init__(self,employee__list):self.employee=employee__listcompany=Company(['tom','jack','jane'])employee=company.employeeforiteminemployee:print(item)打印结果无疑是tom,jack,jane。那么换一种方式,使用Python的魔法函数:cla

系统 2019-09-27 17:52:26 1697

Python

Python闭包和装饰器用法实例详解

本文实例讲述了Python闭包和装饰器用法。分享给大家供大家参考,具体如下:Python的装饰器的英文名叫Decorator,作用是完成对一些模块的修饰。所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能)侵入到原有的模块中的代码里去。闭包1.函数引用#coding=utf-8deftest1():print('Thisistest1!')#调用函数test1()#引用函数ret=test

系统 2019-09-27 17:52:24 1697

Python

Python输出各行命令详解

创建main.py文件并粘贴下面代码点击右键运行Debug'main'后,下方的Debug窗口会出现ImportError:Nomodulenamed'bottle'这样的提示,提示导入bottle包出错所以我们需要先安装这两个包,cmd,输入pipinstallbottle回车后开始安装bottle包Mac权限不够补上sudo#!/usr/bin/python#coding=utf-8frombottleimportdefault_app,get,run

系统 2019-09-27 17:52:23 1697

Python

Python常用的日期时间处理方法示例

#-*-coding:utf-8-*-importdatetime#给定日期向后N天的日期defdateadd_day(days):d1=datetime.datetime.now()d3=d1+datetime.timedelta(days)returnd3#昨天defgetYesterday():today=datetime.date.today()oneday=datetime.timedelta(days=1)yesterday=today-one

系统 2019-09-27 17:52:22 1697

Python

推荐经典算法实现之BPMF(python+MovieLen)

因前一篇https://blog.csdn.net/fjssharpsword/article/details/97000479采样问题未解决,发现如下github上有BPMF代码,采用wishart先验,性能和pymc3一致。参考:https://github.com/LoryPack/BPMF#coding:utf-8'''@author:Jason.F@data:2019.08.01@function:baselineBPMF(BayesianPro

系统 2019-09-27 17:52:22 1697

Python

python实现动态数组的示例代码

实现一个支持动态扩容的数组并完成其增删改查#通过python实现动态数组"""数组特点:占用一段连续的内存空间,支持随机(索引)访问,且时间复杂度为O(1)添加元素时间复杂度:O(n)删除元素时间复杂度:O(n)"""classArr:def__init__(self,capacity=10):"""构造函数:paramcapacity:数组最大容量,不指定的话默认为10"""self._capacity=capacityself._size=0#数组有效

系统 2019-09-27 17:52:16 1697