一数据结构和GIL1queue标准库queue模块,提供FIFO的queue、LIFO的队列,优先队列Queue类是线程安全的,适用于多线程间安全的交换数据,内部使用了Lock和Condition为什么说容器的大小不准确,其原因是如果不加锁,是不可能获取到准确的大小的,因为你刚读取了一个大小,还没取走,有可能被就被其他线程修改了,queue类的size虽然加了锁,但是依然不能保证立即get,put就能成功,因为读取大小和get,put方法是分来的。2GIL
系统 2019-09-27 17:48:10 1941
最近敲代码的时候主要遇到两大问题,第一个是构造自己包的时候找不到package。构造自己package谈两条经验,有助于解决这个问题。1自己构造包的名称尽量不要和Python自带的包重名,起的名字个性化一点。要不然出的bug都不知道错在哪2只要打算把这个文件夹当成一个包,就一定要在这个文件夹同一目录下新建一个__init__.py文件(内容可以为空)一般来说注意这两点,构建包就不成问题。在包的文件夹里面的.py文件称之为模块(文件名就是模块名),当然包里也
系统 2019-09-27 17:48:06 1941
1.if语句Python中的if子句看起来十分熟悉.它由三部分组成:关键字本身,用于判断结果真假的条件表达式,以及当表达式为真或者非零时执行的代码块.if语句的语法如下:ifexpression:expr_true_suiteif语句的expr_true_suite代码块只有在条件表达式的结果的布尔值为真时才执行,否则将继续执行紧跟在该代码块后面的语句.(1)多重条件表达式单个if语句可以通过使用布尔操作符and,or和not实现多重判断条件或是否定判断条
系统 2019-09-27 17:47:35 1941
某些时候我们需要让类动态的添加属性或方法,比如我们在做插件时就可以采用这种方法。用一个配置文件指定需要加载的模块,可以根据业务扩展任意加入需要的模块。本文就此简述了Python实现动态添加类的属性或成员函数的解决方法,具体方法如下:首先我们可以参考ulipad的实现:mixin。这里做的比较简单,只是声明一个类,类初始化的时候读取配置文件,根据配置列表加载特定目录下的模块下的函数,函数和模块同名,将此函数动态加载为类的成员函数。代码如下所示:classWi
系统 2019-09-27 17:47:25 1941
需要建立2个文件,一个作为客户端,一个作为服务端文件一作为客户端client,文件二作为服务端server文件一#client客户端#TCP必须建立连接importsocket#导入模块#SOCK_STREAM---TCP协议方式#AF_INET----我的是ipv4地址#1,创建socket对象:指定传输协议s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#2,建立连接发送连接请求ip地址和端口号s.c
系统 2019-09-27 17:47:20 1941
1.Request库Request库有七个基本方法:首先以requests库的request方法进行讲解:其次,以其中典型的get方法进行说明:1.r=requests.get(url)首先get构造一个向服务器请求资源的Request对象,r是一个返回的一个包括服务器资的Response对象。2.r=requests.get(url,params=None,**kwargs)params:url中的额外参数,字典或者字节流格式...可以修改url内容**
系统 2019-09-27 17:46:57 1941
通常来说Python中任何值都是一个对象,因此任何类型(int、str、list…)都是一个类。而类就必然有它的方法或属性,我们要记下这么多类的所有方法显然是不可能的,对此本文介绍两个小技巧:dir():内置函数,用来查询一个类或者对象所有属性,比如>>>dir(list)。help():内置函数,用来查询具体的说明文档,比如>>>help(int)。在上一篇的Python3的基本数据类型中,我们初步了解了list列表,也介绍了列表是Python中使用最频
系统 2019-09-27 17:46:51 1941
主要是依据质数符合6k+-1的规律,而取除数范围是2至根号nimportmathdeffind_primery(number):#判断1,2,3ifnumberin[2,3]:return1elifnumber==1:return0#能被2或3整除ifnumber%2==0ornumber%3==0:return0#合数#质数判别6k+-1elif(number+1)%6==0or(number-1)%6==0:passelse:return0#合数squ
系统 2019-09-27 17:46:13 1941
数据流转过程除了在类中可以写这种函数之外,在类中还可以写别的函数,延续上一讲的例子:复制代码代码如下:#!/usr/bin/envpython#coding:utf-8classPerson:def__init__(self,name,lang="golang",website="www.google.com"):self.name=nameself.lang=langself.website=websiteself.email="qiwsir@gmail
系统 2019-09-27 17:46:02 1941
介绍Python常见的字符串处理方式字符串截取>>>s='hello'>>>s[0:3]'he'>>>s[:]#截取全部字符'hello'消除空格及特殊符号s.strip()#消除字符串s左右两边的空白字符(包括'\t','\n','\r','')s.strip('0')#消除字符串s左右两边的特殊字符(如'0'),字符串中间的'0'不会删除例如:>>>s='000hello00world000'>>>s.strip('0')'hello00world's
系统 2019-09-27 17:45:26 1941