自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (13)
  • 收藏
  • 关注

原创 简单协程

进程可以多线程,线程下面就是微线程,也就是协程了协程本质上依旧是单线程的,CPU并不认识这种东西,但是它的确能够进行函数间的切换greenletfrom greenlet import greenletdef a(): print('start a') gg.switch() print('continue a') gg.switch()

2017-09-26 22:38:07 145

原创 进程池

开启进程必须定义在__main__中import multiprocessingdef tets(l=[],start=0,end=5,step=1): print(l) for value in range(start,end,step): l.append(value) print(l)def done(a): print('done

2017-09-26 21:09:49 205

原创 进程间交互

可以使用Pipe,得到两个管道,进行进程间收发数据import multiprocessingdef send(sender): for value in range(5): sender.send(value)def recv(recver): while True: print(recver.recv())if __name__

2017-09-26 20:48:30 417

原创 多进程和数据传递

python不仅线程用的是系统原生线程,进程也是用的原生进程进程的用法和线程大同小异import multiprocessingp = multiprocessing.Process(target=fun,args=())线程的基本方法在进程中都能够使用但是进程和线程中有一个明显的区别:可以实现多核的运用python本身会启动一个主进程,并且拥有一个主线程把主进

2017-09-26 20:09:56 990

原创 队列

先进先出,会进会出,进了不出就存储,出了则不再队列范围内import queueq = queue.Queue()基本方法如下1. 设置队列长度q = queue.Queue(maxsize=length)2. 压入数据q.put()3. 获取数据q.get()4. 判断队列是否为空q.empty()5. 判断队列是否满了q.fu

2017-09-24 22:29:31 275

原创 线程锁

上厕所要关门,这就是线程锁当开启线程的时候,想独占的操作某个变量的时候,就必须要加锁上厕所不关门,茅坑能不能独占不说,被人看见了也是不好的import threadinglock = threading.Lock()lock.acquire()todolock.release()所以,上厕所之前要关门GIL也是一样,python的老婆要上厕所,也是要关上门了一个接一个上

2017-09-24 20:25:26 278

原创 GIL理解

1. python自身未实现底层的线程操作,无法自行调度CPU由于采用的是系统原生的线程,同时需要将线程纳入自身,为了保证自身独立,自身加锁GIL内部线程属于自身属性,自身抢占CUP才能进一步分配内部线程,python本身可以看做是一个单线程多核可同步执行多条线程,但不能同时执行同一个线程,python一次只能运行在一个CPU中内部多线程也只能运行在该CPU上2. 本身

2017-09-23 22:52:16 217

原创 线程小结

线程的生命周期分一下几步0. new:新建,创建线程对象1. start:准备,就绪准备执行2. run:执行线程3. wait:阻塞,暂停执行,notify唤醒回到执行前步骤继续执行4. death:死亡,线程执行结束创建线程的方法1. 方法启动import threadingimport timedef test(name) for val

2017-09-23 21:46:15 277

原创 简单创建多线程

0. 导入多线程模块import threading1. 方法开启多线程先将执行操作定义到方法内部def test(name): for value in range(5): print('thread:{}\tcount:{}'.format(name,value))多线程开启方法执行threading._start_new_thread(

2017-09-23 19:28:16 347

原创 paramiko基本方法

ssh客户端操作步骤1. 创建客户端连接2. 根据传入信息进行连接3. 执行命令,返回流对象4. 流对象获取信息,进行对应操作5. 关闭客户端连接import paramikossh = paramiko.SSHClient()#创建ssh客户端ssh.connect(hostname='host', port=port, username='godme', pas

2017-09-23 17:58:30 606

原创 socketserver的简单使用

socketserver是对socket的封装,只需要提供处理器Handler和地址就可以迅速搭建socket服务器处理器Handler必须继承自BaseRequestHandler并重写handler方法远程执行命令服务端代码如下import socketserverimport osclass MyHandler(socketserver.BaseRequestHand

2017-09-22 23:50:14 628

原创 with引起的类的扩充

with作为上下文管理器,对有严格要求的操作的开始和结束的定义操作很大方面节省了多余的操作,也避免了容易遗漏而产生的问题with open('filename','r') as f: f.write('this is a test')对于文件的操作,或许是最经典也是最常用的方式了文件流结束操作时,都应该进行close,但是编码过程中总有遗漏,消耗系统资源这样的方

2017-09-22 20:10:41 199

原创 装饰器之装饰器类

对于装饰器,之前已经详细的梳理了,总结起来就是装饰器:装饰器就是入参唯一且是方法且返回值为方法的方法条件:1. 本身是方法2. 入参是方法(入参数量之前已经完全讨论,现在不进行深究)3. 返回值是方法同时,考量了一下它的作用对象,我们确定它的作用对象是方法那么,什么叫做方法经过模板定义的就叫做方法?能够执行的就是方法?携带可执行代码的对象?现在重

2017-09-22 19:33:06 398

原创 and...or的 彻底研究

在前面的篇章中,我们似乎已经全部了解了and和or1. 执行顺序:从左到右依次结合执行2. 查找方式:and查找真值为False,or查找真值为True,然后返回找到的对象3. 返回对象:返回的是原生的对象,不经过更多的加工和操作还谈论了逻辑运算中语句和对象的概念:逻辑判断和存储操作,针对的群体必定是对象,执行语句会先执行,将执行结果当做对象进行操作但是,目前为止,

2017-09-22 18:11:06 413

原创 装饰器引伸之闭包

在前面的装饰器中,我们利用的带参的装饰器完成了选择装饰器def test(choose): def add_or_sub(fun): def add(a,b): return a+b def sub(a,b): return a-b return choose == 1 and add or

2017-09-21 23:29:21 134

原创 粘包这个鬼东西

忽略底层的协议,编程语言暴露给我们的接口都是socket,通过socket我们可以进行设备之间的信息传输简单的客户端代码实现如下import sockethost = 'localhost'port = 10086address = host,portclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)code

2017-09-21 21:58:25 199

原创 断言

判官一般的铁则,说一不二,错了就退出assert condition断言后面跟上的是一个条件语句,只有条件语句只有返回结果为转化成布尔值为真的对象,后续的条件才得以执行,否则程序抛出异常关键点:1. 条件:条件语句可以包含操作语句,条件判断都会将执行语句执行返回的结果进行对比2. 对象:后面后续判断的是对象,不一定是布尔类型的值,判断都会自动将对象转化成布尔值进行判断3.

2017-09-20 21:29:22 359

原创 and...or引发的深思

python中是没有三目的,一般但是有替代的方法print('True' if True else 'False')不过接受程度更高的应该是print(True and 'True' or 'False')但是这两个关键词并不是必须要联合使用的print(True and 'True')这就颠倒实现了类似Ruby中的if用法puts 'True' if true

2017-09-20 19:14:24 728

原创 装饰器之认祖归宗

这篇应该是装饰器的最后一篇总结性文章,关于装饰器我实在想不到更多装饰器就是方法老实说,剖析了半天装饰器,发现到头来都只是方法的高级用法而已,唯一让人有点觉得高大上的不过是@符号进行的自动注入传参但是这种符号自动调用方法的例子在python中并不是很少见,类名方法调用创建对象也是一样真的感到迷惑了,只能说对于python还没有真正的熟悉,少见多怪装饰器原理方法入参,内部定义新

2017-09-20 01:15:42 397

原创 装饰器之类装饰器

外部的方法至今都玩过了,现在来思索一下的方法这么装饰类方法修饰器类的方法唯一的特殊点在于,self内部是可以调用的,但是在外部却是隐藏的,那这个怎么搞为求稳妥,先定参修饰一个def godme(fun): def __godme(self,message): print('before') fun(self,message) pr

2017-09-20 00:11:20 7556

原创 装饰器之适配装饰器

可能没人发现,前面描述的装饰器受众面太小了都是只能知道原函数入参个数的情况下才能编写装饰器,所以写出来的装饰器都只能针对入参个数的函数使用(不局限于原函数)def godme(fun): def __godme(message): print('before') fun(message) print('after') retu

2017-09-19 23:31:58 327

原创 装饰器之星星点灯

*args.................**kwargs看到这两个货,想过放弃么,这两个猩猩没有照亮,反倒是让我们的天空黑暗了不少许多内置的方法中,这两个东西出现的频率应该算是最高的了,对着两个东西一知半解恐怕人生真的要苦且短了(用python的话)先从简单的使用来消除我们的恐惧一颗星*argsdef test(*args): print(args)test(1,2

2017-09-19 22:23:25 377

原创 python的三目

python中是不存在三目运算符的,不过有两种方法可以代替它1. if...else...def Max(a,b): return a if a > b else b模式一眼能明白one if condition else twocondition:判断条件a:条件成立返回值b:条件不成立返回值能用是能用,不过顺序颠倒了,可能有些同学一时半会适应不了,于是就都转第二

2017-09-19 22:02:20 377

原创 装饰器之变体装饰

装饰器就是用来装饰东西的,一般情况下用来装饰方法,在不修改原方法的情况下让原方法拥有更多的功能简单实现def test(): print('test')test() #testdef godme(fun): def __godme(): print('before') result = fun() print('afte

2017-09-19 20:27:59 367

原创 装饰器之基本方法

方法你了解多少,不够清晰的话后面装饰器可能会糊涂方法基本模板:def function_Name(parameters...): todo return obj组件讲解:def:这个是python方法定义的关键字,实在说不了啥function_Name:自定义方法名,和对象一样随便定义,但是函数名不能随便当做变量名使用,真的会覆盖的def test():

2017-09-19 19:45:35 438

原创 对象家族后续之单例模式

在很多场合下,对于一个类,要求它的实例对象只能有一个,因此需要实现单例模式既然已经对对象的创建有了一个清醒的认知,那不外乎是__new__对象时返回的是一个已经存在的单一对象class Person(object): __single = None def __new__(cls): if cls.__single is None:

2017-09-19 19:04:52 225

原创 字符串分割

一般的字符串自带分割字符操作,通过指定分割字符,将指定的字符串切割成几部分,然后组合成列表进行返回test_string = 'i am a boy'split_string = test_string.split(' ')#['i','am','a','boy']    在re模块中有更加广泛的分割方法,可以通过正则表达式进行分割import retest_string = 'i

2017-09-19 18:48:51 349

原创 对象族谱之归纳总结

'''对象族谱之归纳总结''''''家族分类: 0.type 对象家族的原点,宇宙大爆炸的奇点,python底层实现的基元类,不可追究 是基元类,是超元类,是父元类,是始祖类 1.元类 是类的类,type的子类,与type同属于元类 该类生成的实例对象是对象类 2.对

2017-09-18 23:12:54 426

原创 对象族谱之类实例化过程

'''对象族谱之类实例化过程'''''' 类不是基本的模板了么? 实例化之后不就成对象了么? 实例化之后的类还是类,这是什么鬼类? 元类: 可以看做是对象的根类,是不可再继续追究的类,是所有对象和类的始祖,也可以认为是‘原类’ 元类是对象这个族谱的老祖,是食物链的最顶端,是皇帝 一般类,是这个家

2017-09-18 22:24:17 386

原创 对象族谱之类对象实例化过程

'''对象族谱之类对象实例化过程'''class Person(object): '''获取对象方法''' def __new__(cls, *args, **kwargs): ''' 对象获取要点之一: 获取 当外部进行类名方法调用时,会调用__new__方法获取对象实例

2017-09-18 21:29:45 393

原创 对象族谱之基本方法作用讲解

'''对象族谱之基本方法作用讲解'''class Person(object): '''在对象内部,存在三个方法,这三个方法决定了对象和类族内关系''' def __new__(cls, *args, **kwargs): '''__new__''' ''' 利用类名进行方法调用时返回一个对象

2017-09-18 20:36:22 443

原创 执行命令

import os#执行命令,直接在窗口输出结果os.system('dir')#执行命令,返回结果对象result= os.popen('dir')#可在代码中获取执行结果message = result.read()print(message)#直接执行由于编码差异会有乱码#popen没有乱码

2017-09-17 22:11:29 208

原创 单线程socket通信

#-*- utf-8 -*-'''客户端'''import socket#设置超时socket.setdefaulttimeout(5)#端口定义host = '127.0.0.1'port = 10086addr = host,port#创建对象s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#连接判断,返回码

2017-09-17 22:03:18 439

原创 小小异常

''' 异常: 程序出错却不想中断执行,抛出,捕捉对应错误,处理之后继续运行 抛出: raise Exception 抛出异常,表示程序出现了错误 要求对可能的错误进行处理,否则会导致程序执行失败 捕捉: try: program except excep

2017-09-17 18:43:01 166

原创 反射

''' 反射就是在程序运行的时候,对程序的状态,属性,方法通过字符串的形式进行修改'''class Person: def show(self): print('person show')person = Person()''' 反射的四种方法 getattr(obj,attr,default=None): 获取对象的指定

2017-09-17 18:08:16 137

原创 内置属性和方法

'''**************内置属性************'''person = Person()'''__dict__,返回内部属性字典'''#类名调用打印所有的属性和方法Person.__dict__#对象调用只打印对象属性,不包含类属性person.__dict____file__#打印当前文件相对路径,无需模块或类进行调用obj.__module__#打印对

2017-09-17 17:09:45 256

原创 类中的集中特殊方法

'''类当中的特殊方法'''class Person(object): _class_var = 'class_var' #初始化方法,用于初始化对象内部变量,第一个入参表示当前对象,外部调用自动隐藏 def __init__(self,message, name): self._message = message self._name

2017-09-17 16:30:39 277

原创 继承

'''**********继承**********'''#基本类定义class Human: def say(self,messaeg): print('i said that {}'.format(messaeg))class Method: def sleep(): pass'''继承的表示方法'''#定义一个类的时候在后面跟上

2017-09-16 23:45:10 148

原创 解析四则算式并计算

from re import sub as replacefrom re import search as findfrom re import split'''***********解析四则算式并计算***********''''''全局正则定义'''#乘除正则,查找乘除操作mul_div_calc_regex = r'\d+(\.\d+)?[\*\/]\d+(\.\d+)?

2017-09-16 18:35:54 333

原创 re

import re'''正则字符串操作'''re.split(pattern, string)#通过正则pattern分割字符string,返回分割列表re.sub(pattern, replace, string,count)#在string中将pattern匹配到的字符用replace进行替换,count指定替换次数'''正则定义技巧'''pattern = r''

2017-09-14 22:55:40 379

latex文档

latex 排版学习笔记

2020-04-16

jd-gui反编译工具

反编译工具,通过class反编译查看java源代码,通过反编译确认逻辑,排查问题和读取现有class逻辑

2018-09-14

netty-api-chm

netty-api-chm文档,梳理netty结构,便于源码学习和使用

2018-09-13

5.6drools基础包

包含drools安装包和runTime,由于上传大小限制,其他额外包没有同意打包 但是学习足够了

2018-08-23

knn学习数据

csv格式irs数据 自己编程学习使用 其他排布格式需自己转换

2018-04-22

source练习资源

包含基本数据data.csv 结果逻辑result.dot 还有dot可视化工具graphiviz(安装,配置环境变量,按照命令执行即可)

2018-04-22

kibana安装及使用文档

kibana环境安装,elasticsearch对接,数据绘图,报警插件的安装,查询语句以及定时任务脚本设置

2018-03-01

elasticsearch安装文档

elasticsearch环境搭建,错误解决办法,配置和基本查询语句

2018-03-01

SGIP服务端

联通网关模拟服务,用来测试验证编写的客户端程序。。

2018-03-01

SGIP协议文档

联通封装的GSM文档,针对短信业务的网关之间以及SP之间的通信协议

2018-03-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除