搜索到与相关的文章
Python

python实现策略模式

python实现策略模式原文地址1、策略模式概述策略模式:定义一系列算法,把它们一一封装起来,并且使它们之间可以相互替换。此模式让算法的变化不会影响到使用算法的客户。电商领域有个使用“策略”模式的经典案例,即根据客户的属性或订单中的商品计算折扣。假如一个网店制定了下述折扣规则。有1000或以上积分的顾客,每个订单享5%折扣。同一订单中,单个商品的数量达到20个或以上,享10%折扣。订单中的不同商品达到10个或以上,享7%折扣。简单起见,我们假定一个订单一次

系统 2019-09-27 17:45:53 2417

Python

Python优化技巧之利用ctypes提高执行速度

首先给大家分享一个个人在使用python的ctypes调用c库的时候遇到的一个小坑这次出问题的地方是一个C函数,返回值是malloc生成的字符串地址。平常使用也没问题,也用了有段时间,没发现什么异常。这次在测试中,发现使用这个过程会出现“段错误”,造成程序退出了。经过排查,确定问题原因是C函数的返回值问题,ctypes默认的函数返回类型是int类型。需要在使用中设置返回类型,例如:func.restype=c_char_p下面我们就来详细探讨下ctypes

系统 2019-09-27 17:38:19 2417

Python

基于Python实现对PDF文件的OCR识别

最近在做一个项目的时候,需要将PDF文件作为输入,从中输出文本,然后将文本存入数据库中。为此,我找寻了很久的解决方案,最终才确定使用tesseract。所以不要浪费时间了,我们开始吧。1.安装tesseract在不同的系统中安装tesseract非常容易。为了简便,我们以Ubuntu为例。在Ubuntu中你仅仅需要运行以下命令:这将会安装支持3种不同语言的tesseract。2.安装PyOCR现在我们还需要安装tesseract的Python接口。幸运的是

系统 2019-09-27 17:37:44 2417

Android

Android进阶:AIDL实现IPC使用详解

使用AIDL设计远程接口(DesigningaRemoteInterfaceUsingAIDL)由于每个应用程序都运行在自己的进程空间,并且可以从应用程序UI运行另一个服务进程,而且经常会在不同的进程间传递对象。在Android平台,一个进程通常不能访问另一个进程的内存空间,所以要想对话,需要将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界。通过代码来实现这个数据传输过程是冗长乏味的,Android提供了AIDL工具来处理这项工作。AIDL(

系统 2019-08-29 23:50:47 2417

编程技术

并发中的遍历

在开发多线程并发的程序时,对列表进行遍历是一个很常见的操作。比如说在观察者模式中,当某个事件发生时,就需要通知到对应的观察者进行事件的处理,这里就需要对观察者列表进行遍历,逐一触发观察者进行事件的处理。那么,如何保证并发中的遍历操作的原子性呢?大概有下面几种方式:1.首先,最容易想到的肯定是使用JAVA内置的同步机制-synchronized,把整个遍历操作当作一个原子操作。synchronized(lock){for(Observerob:observe

系统 2019-08-29 23:06:54 2417

SqlServer

连接sqlserver2005数据库

importjava.sql.*;publicclassConnSqlServer2005{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubtry{ConnSqlServer2005sql=newConnSqlServer2005();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.p

系统 2019-08-29 22:58:08 2417

编程技术

企业信息门户(EIP)定位与价值分析

企业信息门户是通过将内部和外部相对分散的资源组成一个统一的整体,使用户能够通过统一的渠道和个性化设置来访问所需要的信息并进行协同工作。通过企业门户的建设,实现应用系统的统一入口和企业各类信息的集成展现平台,为企业各级员工提供集成的工作与信息共享平台,实现各级管理者关心的信息都能通过该平台获取,提升企业的整体运作效率。根据门户受众需求的不同,主要分为内部员工(B2E)、外部客户(B2C)以及供应商/合作伙伴(B2B)三种不同形式的企业门户,满足多角度的业务需

系统 2019-08-29 22:39:53 2417

Python

python 日期

dt=datetime.now()print'(%Y-%m-%d%H:%M:%S%f):',dt.strftime('%Y-%m-%d%H:%M:%S%f')print'(%Y-%m-%d%H:%M:%S%p):',dt.strftime('%y-%m-%d%I:%M:%S%p')print'%%a:%s'%dt.strftime('%a')print'%%A:%s'%dt.strftime('%A')print'%%b:%s'%dt.strftime('

系统 2019-08-29 22:36:23 2417

Java

Java Annotation的使用总结

在上篇文章里提到的是JUnit的学习,其中就涉及到了一些内置的annotation,如@Test、@Ignore等。现在我就结合个人的理解谈下如何自定义自己的annotation。annotation能被用来为某个程序元素(类、方法、成员变量等)关联任何的信息,但annotaion不能影响程序代码的执行,无论增加、删除annotation,代码都始终如一的执行。另外,尽管一些annotation通过java的反射api方法在运行时被访问,而java语言解释

系统 2019-08-29 22:31:46 2417