包含标签 python 的文章

PY2EXE的启动步奏参考-科学的发布

周末读了一下Py2Exe的代码,偶然发现Py2Exe的实现,是一套很成熟的客户端发布方式,不限于只有 Python项目可以参考,Py2exe启动步奏如下: Py2exe启动步奏方式参考:

  1. 主程序启动,尝试在本EXE的资源中找到zip过后的PythonXX.dll的数据
  2. 如果找到 PythonXX.dll数据则unzip后以memory dll方式加载并导出接口
  3. 初始化 memoryimporter,给python提供在内存中import一个pyc或者dll的功能
  4. 利用memoryimporter加载 ctypes.pyd模块
  5. 利用py2exe_util.c中的方法,加载程序所需要的资源:ICON等
  6. 在资源中初始化 zlib.pyd等必要模块
  7. 在资源中找到初始化,以 __main__ 的命名开始转入Python脚本
……

阅读全文

Python少打字小技巧

说明:增加代码的描述力,可以成倍减少你的LOC,做到简单,并且真切有力 观点:少打字=多思考+少出错,10代码行比50行更能让人明白,以下技巧有助于提高5倍工作效率

1. 交换变量值时避免使用临时变量:(cookbook1.1)

老代码:我们经常很熟练于下面的代码

temp = x
x = y
y = temp

代码一:

u, v, w = w, v, u

有人提出可以利用赋值顺序来简化上面的三行代码成一行

代码二:

u, v = v, u

其实利用Python元组赋值的概念,可更简明 — 元组初始化 + 元组赋值

2. 读字典时避免判断键值是否存在:(cookbook1.2)

d = { 'key': 'value' }

老代码:

if 'key' in d: print d['key']
else: print 'not find'

新代码:

print d.get('key', 'not find')
……

阅读全文