Python中的包包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的Python的应用环境。考虑一个在Phone目录下的pots.py文件。这个文件有如下源代码:#!/usr/bin/python#-*-coding:UTF-8-*-defPots():print"I'mPotsPhone"同样地,我们有另外两个保存了不同函数的文件:Phone/Isdn.py含有函数Isdn()Phone/G3.py含有函数G3()现在,在Ph
系统 2019-09-27 17:38:41 1956
引言对于Python来说,并不缺少并发选项,其标准库中包括了对线程、进程和异步I/O的支持。在许多情况下,通过创建诸如异步、线程和子进程之类的高层模块,Python简化了各种并发方法的使用。除了标准库之外,还有一些第三方的解决方案,例如Twisted、Stackless和进程模块。本文重点关注于使用Python的线程,并使用了一些实际的示例进行说明。虽然有许多很好的联机资源详细说明了线程API,但本文尝试提供一些实际的示例,以说明一些常见的线程使用模式。全
系统 2019-09-27 17:38:28 1956
一、列表(List)list是一个可以在其中存储一系列项目的数据结构。list的项目之间需用逗号分开,并用一对中括号括将所有的项目括起来,以表明这是一个list。下例用以展示list的一些基本操作:#定义一个list对象class_list:class_list=['Michael','Bob','Tracy']#获得一个class_list的长度print'classhave',len(class_list),'students'#访问class_lis
系统 2019-09-27 17:38:23 1956
代码中经常会有变量是否为None的判断,有三种主要的写法:第一种是`ifxisNone`;第二种是`ifnotx:`;第三种是`ifnotxisNone`(这句这样理解更清晰`ifnot(xisNone)`)。如果你觉得这样写没啥区别,那么你可就要小心了,这里面有一个坑。先来看一下代码:>>>x=1>>>notxFalse>>>x=[1]>>>notxFalse>>>x=0>>>notxTrue>>>x=[0]#Youdon'twanttofallinth
系统 2019-09-27 17:38:05 1956
目前Document类的结构已经比较完善了,由于编辑Document涉及到界面,所以先把GUI写出来。用Java做界面一直是比较麻烦的事情,早期的AWT太慢,现在很少用了,Swing我没用过,但速度也快不了多少,最后发现SWT是一个不错的本地库,速度够快,而且效果和本地平台一样(因为是调用的平台相关API),不仔细看根本看不出是java做的。不过,考虑到移植性,我决定把Frame分成平台无关和相关两层,这样就有足够的灵活性,将来可以用Swing或者其他GU
系统 2019-08-29 23:45:24 1956
本文为本人另一个账号上的文章,那个账号不要了,乾坤大挪移过来。最近遇到结构体内存对齐的问题,发现自己一知半解,于是在网上搜集了些资料,总结如下。一、规则每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragmapack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”,VC++默认n=8。对齐分两步,第一步:数据成员对齐;第二步:结构体对齐。数据成员对齐:每个结构体成员所分配的存
系统 2019-08-29 23:43:20 1956
摘要:货币,记账相关的领域模型,使用值对象快年底了,假如你们公司的美国总部给每个人发了一笔201212.21美元的特别奖金,作为程序员的你,该如何把这笔钱收入囊中?1.美元?美元!你可能觉得,这根本不是问题。在自己的账户中直接加上一笔“转入”就行了。但是首先就遇到了币种的问题。一般来说,银行账户都是单币种的。你可能会说不对啊,我的一卡通就能存入不同的币种啊?但那是一个“账号(AccountNumber)”对应的多个“账户(Account)”。通常财务记账的
系统 2019-08-29 23:23:04 1956
今天在服务器上用命令行的方式操作了一下memcache,主要是操作了setaddreplacedeleteincrdecr几个命令具体的格式就不详细说明了,网上一搜一大把。发现了一个问题就是当我incrkey1的时候,不论memcache里之前存放的是什么内容,之后都会将value转变成1,而其中的字节数一如既往的是之前设定的字节数,比如这样不知道这是不是memcache的一个bug还是设计人员有意追求的一个效果,明天来接着研究。当然,还有就是如果valu
系统 2019-08-29 23:16:00 1956
在《与IoFilter相关的几个类》和《与IoHandler相关的几个类》两篇文档中我们了解了IoFilter和IoHandler的基本用法,以及其相关类的作用和用途。在本文中主要探讨IoFilter和IoHandler的主要区别和联系。在上面的两篇文档中都提到了IoFilter和IoHandler都是对服务器或客户端(IoAcceptor/IoConnector)接收到的数据进行处理。在Mina的官方文档《Thehigh-performanceproto
系统 2019-08-29 23:01:54 1956
以下为log4j中的配置参数:%m输出代码中指定的消息%p输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL%r输出自应用启动到输出该log信息耗费的毫秒数%t输出产生该日志事件的线程名;%n输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"%d输出日志时间的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyMMMddHH:mm:ss,SSS},输出类似:2008年10月18日22:1
系统 2019-08-29 22:51:08 1956