- 博客(74)
- 资源 (10)
- 收藏
- 关注
原创 golang中的interface{}转其他类型
golang中的string是可以转换为byte数组或者rune数组但是其实byte对应的类型是uint8,而rune对应的数据类型就是int32所以string可以转换为四种类型//interface转其他类型————返回值是interface,直接赋值是无法转化的 //interface 转string var a interface{} var str5 string...
2019-05-17 00:28:46
7187
原创 golang数组与切片
其实golang中的切片本质上就是数组,比如字符串,又或是其他类型的数组,都是支持切片的而且需要注意的是本质上golang中的数组也就是切片的长度是固定的,因为数组在内存中是连续的,所以一旦长度固定就不能再继续增加长度,否则会引起越界覆盖后面的内存数据,golang中提供了一种动态改变切片长度的方法,但这种方法的本质还是将数组的内存复制到一个新的更大的内存区域并添加新的数值...
2019-05-17 00:26:01
178
转载 正则中的贪婪与非贪婪
贪婪就是尽量往多的匹配 比如 + -->一次或多次,优先匹配更多的非贪婪就是尽量少的匹配 比如 ? -->0或者1次 ,优先匹配少的在贪恋匹配后面加上?就变为了非贪婪匹配正则表达式贪婪与非贪婪模式之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意。1.什么是正则表达式的贪婪与非贪婪匹配 如:Strin...
2019-05-17 00:24:45
2790
原创 爬虫----有道翻译
import timeimport requestsimport hashlibclass YoudaoFanyi: def __get_cookie(self): url='http://fanyi.youdao.com/' ret=requests.get(url=url) return ret.headers.get('...
2019-05-16 21:37:46
208
原创 用python实现KNN算法
knn是最简单的分类算法,基于经验,利用各种距离进行分类下面给出一种简单的实现:'''手动实现KNN算法'''import numpy as npclass KNN: def __init__(self,exp_x,exp_y,weights=1,distance_func=None): ''' :param exp_x: 样本的特征...
2019-04-24 15:14:21
565
原创 python中的function函数对象
python中一切皆对象,函数也是,那么函数对象有什么特点呢?最重要的是函数有两个特点:1.函数实现了__call__方法;2.函数实现了__get__方法;为什么说实现了这两个方法很重要呢?python是一个动态语言,你在使用对象的的时候并不需要在乎对象是什么类型,你只需要在乎这个对象到底有没有你想要的方法或者属性即可(方法也是属性),所以这就是鸭子类型,一个对象只要走起路来像鸭...
2019-04-24 14:52:16
1375
原创 python内置装饰器property、classmethod、staticmethod的实现原理
这三个装饰器的作用: property将方法变为属性; classmethod将实例方法变为类方法; staticmethod将实例方法变为静态方法;知道作用后我们就直接使用python实现:class Property(object): def __init__(self,f_get,f_set=None,f_del=None): ...
2019-04-21 02:58:53
538
原创 python使用装饰器实现单例模式
直接上代码:第一种使用函数装饰器实现并且使用锁保证线程安全:#不使用锁实现def SingleInstance(cls): def new(cls,*args,**kwargs): if not hasattr(cls,'instance'): cls.instance= object.__new__(cls) retu...
2019-04-08 20:33:30
1911
原创 python中的迭代器
python中的迭代器,正如python一样简单,任何对象只要拥有__iter__属性即可,该属性是一个方法,且该方法返回一个拥有__next__方法对象即可。任何对象必须满足上面所述两个原则才能成为迭代器。举个例子:python中的生成器就实现了__iter__方法,同时它也实现了__next__方法,从这里我们可以推测,生成器的__iter__方法返回的就是自身,因...
2019-04-08 19:59:49
158
原创 万能爬虫框架
对于爬虫大部分情况下都是请求头的构造很难,难就难在你必须分析js代码,看看header中有那些验证信息,这些验证信息是怎么生成的,然后再在Python中写出生成的方法,这样就能构造出正确的请求头,有了正确的请求头,就一定能请求成功,但是对于很多网站,这样的方式在过于复杂,不是一个好的解决方案,所幸的是还有一种方案是万能的,它可以爬取任何网页和任何操作,这个方案就是使用谷歌或者火狐提供的自动化测试工...
2019-03-29 09:08:29
1480
原创 关于Python的多态最重要的
首先也是最重要的是python不支持多态,也不用支持多态,直接点说多态就是一个对象被不同的类型引用就表现出不同的形态,但是在Python中引用没有固定类型的,引用是可变的,所以对于任何一个对象只有一种形态就是它本身,不会有第二种形态,所以多态也就自然不存在了,并且它不像java中有类型转换,更重要的是它压根就不需要多态,因为你在使用一个对象的时候不会在乎它到底是什么类型的,你关心的是它有没有某个方...
2019-03-26 13:47:52
277
原创 超简单理解卷积神经网络
人工智能发展到现在,出现了很多很多的神将网络,但是神经网络再多,不变的还是全连接层全连接层成为了一种通用的数学模型用于回归和分类任务,它本质上就是拟合曲线(决策边界曲线或回归曲线),其拟合曲线的方式是基于连续的定义的,就跟微积分一样,任意一条曲线都可以由无数直线构成,任何曲线在其局部无穷小时都是线性的,而神经网络通过非线性变换产生了很多条这样的直线,这些直线组合起来就构成了目标曲线,对于每一个...
2019-03-24 13:02:10
1077
原创 通俗理解装饰器
Python里的装饰器有时候是很好用的,可以减少代码量,比如在django的视图函数中,如果某个函数必须要登录才能访问,那么就以写一个装饰器来装饰那些函数,首先说一下如何理解装饰器呢,其实很简单,1.装装饰器必须是一个可调用对象,用来修饰被装饰的函数,使之增加一些额外功能;函数就是可调用对象的一种,任何对象只要拥有__call__属性就可以被调用,当然函数自带__call__属性了,...
2019-03-23 14:58:22
497
原创 使用OpenCV进行仪表数值读取
最近遇到一个问题,如何读取仪表中的指针指向的刻度解决方法有多种,比如,方案一:模板匹配+边缘检测+霍夫直线检测,方案二:神将网络(CNN)目标定位等,其中CNN就有点麻烦了,需要一定数量的训练样本,太麻烦,而方案一太普通,最后我采用了方案三,方案三:模板匹配+k-means+直线拟合具体做法如下:首先说一下模板匹配,它是OpenCV自带的一个算法,可以根据一个模板图...
2019-03-23 13:54:09
24487
11
原创 解决生成器不能复用-----生成器列表
Python中的生成器 有函数形式和列表生成器,但是他们都有一个缺点是不能复用,一次用完便不能再用,但是有时候我们需要复用结果,自然想到有没有一种叫做生成器列表的东西,第一次用的时候用生成器创建数据并将数据存起来,之后直接访问一保存的数据不再使用生成器,代码如下:import collectionsclass gen_list(collections.abc.Sequence): ...
2019-02-22 12:04:16
340
原创 通过js实现轮播图
思路:1.创建一个String数组,存放图片url2.动态改变img元素的srcJavaScript代码: //图片的url let imgs=["img/cat.jpeg", "img/bg.jpeg", "img/left-bg1.jpg", 'img/left-bg2.jpg']; let isPause=false;//轮播是否暂停的状态标记 ...
2019-01-03 12:12:09
307
原创 js动态绑定事件
JavaScript代码:let interval=setInterval(getE,1);//每隔一毫秒向消息队列中发送一个事件getEfunction getE() { let element=document.getElementById('result');//动态获取元素 if (element!=null) {//如果元素已被绘制则给元素绑定事件...
2019-01-03 11:55:03
1142
原创 Python实现线程池类
线程池就是用来分配和管理线程的工具,如何实现线程池,下面我就给出一种实现方式:class SimpleThreadPoolExecutor: def __init__(self,maxSize=1,queueSize=100,waitTime=0): self.__task_queue=queue.Queue(queueSize) self.__ma...
2018-10-12 13:43:31
986
原创 自己实现Python中的map函数
'''自定义map'''def map(func,*iterators): try: i = 0 while 1: yield func(*[j[i] for j in iterators]) i+=1 except IndexError : pass这里使用yield生成器...
2018-10-12 13:36:29
1476
原创 超高性能字符串去重算法
在python中由于字典的键key不允许重复,可以利用这个特性去重,字典内部使用哈希表,所以性能能超强;在其它语言中都可以使用HashMap实现去重,当然使用数组也可以,数组只是哈希表的一种最简单的一种形式。def removal(string): result={} for i in string: result[i]=None return res...
2018-09-29 10:10:17
1626
原创 python使用链表实现列表list
在python中列表是使用链表实现的,下面使用单向链表实现Listclass List(): class Node(): def __init__(self,object_,next_node): self.object_=object_ self.next=next_node def __init__(self...
2018-09-29 09:29:25
2734
原创 python实现快速排序
快速排序的原理我就不叙述了,百科上面讲解很全面,下面是使用递归实现的def quickSort(datas,start,end): if start >= end: return reference=datas[start] # 参考数(中间数) i=start j=end while i<j: while ...
2018-09-29 09:17:37
193
原创 求解点是否在三角形内
思路: 三角形内任意一点与三角形三个顶点连线可构成最多三个三角形且和为总面积,因此若点在三角形内则符合要求,在求解的时候可以利用向量叉乘后的模的一半求解;class Dot: def __init__(self,x,y): self.x=float(x) self.y=float(y)def solve_dot_is_in_triang...
2018-09-29 09:13:38
321
原创 python检测字符串变量名是否合法
直接继承字符串类'''检测字符是否合法'''class String(str): illegal = {'and': 1, 'elif': 1, 'import': 1, 'return': 1,'as': 1, 'else': 1, 'in': 1, 'try': 1,'assert': 1, 'except': 1, 'is': 1, 'whi...
2018-09-28 23:40:39
3859
原创 python自己实现 面向对象
在学习python的时候,看到python类的__dict__()方法忽然产生了一个简单的想法去自己实现面向对象:'''自定义类'''People={}#类名def loadClassToMemory(): People .update( {'init': init, 'A': A, 'B': B} ) # 模拟类def init(self,name='',age=0):...
2018-09-28 15:32:07
262
原创 Android 终极优化技巧
流畅度对于一个app来说至关重要,而提升流畅度的方法最直接的思想就是减少UI线程的耗时,即减少UI线程工作量;关于如何减少我这里提供一种思路,这个是我在做文件管理器是想到的:下面来解释下,思路很简单就是在UI线程中把需要执行的任务所需参数给包装起来,然后放进一个队列或者集合(List),接着创建一个取参数的线程,并在该线程中创建任务然后加入到线程池中,这里提一下往线程池中添加任务也会耗...
2018-07-19 19:47:31
416
原创 如何实现线程池的暂停和恢复功能
很多时候我们需要暂停线程池,而不是shutdown线程池,暂停线程池可以为我们保存任务,稍后可以继续执行,从而避免不必要的开销。这里我提供一种暂停线程池的方法;首先拿到ThreadPoolExecutor.java源码,将其变为自己包内的私有类;接下来修改线程池,先在线程池类中添加一下方法和变量:BlockingQueue<Runnable> pauseQu...
2017-05-16 18:05:37
6398
3
原创 线程池动态并安全地中断所有线程不需要使用shutdownnow()同时可以继续添加任务
对于一个线程池如果使用shutdownNow() or shutdown() 方法关闭线程池的话可能会造成不必要的开销,因为有时候我们需要关闭线程池的线程但是之后可能还会继续使用线程池,因此,最好的办法是自己写一个终止线程的方法。一下就是我给出的一种方法:拿到线程池源码作为自己包下的类后,直接修改源码,添加一下内容,// TODO: 2017/5/15 线程管理类priva...
2017-05-15 16:25:25
2774
原创 动态控制线程池中正在运行的任务
看起来很容易,也确实很容易,但是要不执行多余代码就很麻烦了。先说说简单实现吧,我们在添加任务时可以利用List<Runnable>记录下来运行了的任务;注意这个Runnable必须自定义并且在里面添加停止任务的方法,一般可以在执行步骤里面或者前面判断是否继续运行,例如public class MyRunnbale implements Runnable{public v...
2017-05-14 21:49:54
815
原创 ListView获取滑动(滚动)停止状态及响应事件
有时候我们为了获得更好的用户体验,不得不对ListView的Item中的图片的资源进行动态加载,一般的做法就是当Item停止滚动时进行加载,并且仅仅加载当前可见的item的数据;为我们可以为ListView设置OnScrollListener滚动监听器;这个监听器需要实现两个方法public void onScrollStateChanged(AbsListView view, i...
2017-04-21 21:14:14
2857
原创 Java线程池获取全部完成时的状态并执行后续工作
Java的几种线程池都没有所有任务完成时的回调方法,也难以获取任务完成的数量;而很多时候我们都需要在所有任务完成时进行下一步操作;所以在此我提供一种简便的方法:首先线程池可以往里面提交任务,我们就利用这个特点 将通知的任务接口放到最后,那么如果执行此任务是就代表任务已经差不多完了,那么就使用handler发送通知,然后处理后续工作;例如:ExecutorServic...
2017-04-16 23:49:18
3627
原创 listview中的checkbox状态保存与恢复的完美方法
由于listview的特性机制导致item中的checkbox的状态无法保存,在这里提供一种很好的解决方法;首先我们知道listview的数据来源于Adapter中传入的list集合或者数组中的元素;因此我们可以为此元素创建一个包装类,在包装类中添加一个用来保存CheckBox状态的成员变量,可以同时创建setter和getter确保数据可以修改;然后在Adapter的getView()方法中...
2017-04-06 00:05:13
1017
原创 Android listview 的 item 点击无效(无法获取焦点)的解决方法
当listview的item中包含Button之类的空间时就会出现item无法响应事件 ,这是由于item的view中包含的button控件获取了焦点;网上很多人给出的在item的根布局属性中添加 android:descendantFocusability="blocksDescendants"并不一定能解决此问题;我的问题就没有解决反而使程序直接崩溃,我运行的...
2017-04-05 23:42:47
1727
原创 android ListView 滑动进度保存和恢复
这里只写一种方法,直接利用Google推荐的方法。举个例子就是: 做一个文件管理器,当进入子目录,然后返回后仍然能准确恢复之前的位置;具体方法就是 获取第一个可见的item的位置,再获取这个item对应view距离顶端的距离,然后调用listview.setSelectionFromTop(index,top); 即可。下面是例子的部分代码private List<int[][...
2017-04-04 15:26:08
715
U盘烧录修复.rar
2010-08-08
100TV手机电视 Java版本
2010-08-08
Total Video Converter
2010-08-08
ucwebs60手机浏览器
2010-08-08
电脑超级技巧3000招
2010-08-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅