混合语言策略可以汲取各语言之所长,让开发更加敏捷。混合语言策略在在应用得当时可以让程序更加优雅。 在《Unix编程艺术》中,Raymond说道: 混合语言是一种知识密集型(而不是编码密集型)的编程。要让它能够工作,我们不仅应该具备相当数量的多种语言应用知识,并且还需要具备能够判断这些语言在什么地方最适合、以及怎样把他们组合在一起的潜经验。 在混合语言编程中,我们遇到的第一个问题是如何需要让他们可以互相调用。也就是像C++可以调用Python的函数、Python又可以调用C++的函数。 对于C++和Python的混合编程主要有两种方式。 将C++写的模块编译成动态链接库,然后由Python主程序使用。这种一般是单方向的使用。 用C++主程序调用Python。然后Python中可以使用C++主程序的函数。 对于第一种方式非常简单,我们在此就不讨论了。我们将着重讨论第二种方式。
发现一个很好玩的Python网站
http://www.pythonchallenge.com/ 又是一个解题过关的网站,不过这次题目是Python的,有兴趣的同学们一起上吧。 豆瓣的介绍: 来玩pythonchallenge吧,理由如下: 0、Tim Peters的理由:”I’ve been using Python since 1991, and while I’ve always enjoyed it, I have to confess this is the most Python fun I’ve had this century! Excellent work. Thank you!” 1、沈大仙的理由:”说到这里, 想起我们部门新来两位同事, 在使用 Python 做项目之前, 先沉下心来做了两周的 Python Challenge, 把 Python 模了个透, 结果两周后程序写出来相当漂亮, 甚至让我这种老牌 Python 程序员跌破眼镜, 与我周围的同事立马有了境界上的区分。” 2、给你的理由:能在短时间内完成全部33题,这可以证明你很聪明。 3、自己的理由:俺连滚带爬好不容易做到了第27题,沮丧地看到了自己的笨,但从好处想,这至少可以证明俺有毅力,嘿嘿。 4、自私的理由:憋死在第27题,等老大们来给个提示拉俺一把吧。
Python的“黑暗魔法”,两行解一元一次方程
无意看到一个大神写的《Linear equations solver in 3 lines (Python recipe)》,Python解一元一次方程只需要三行就完成了,确实很强悍啊。 我们来围观一下: 说到底呢,这个段代码的关键是利用了复数。 第一步: 2 * x + 233 = x * 8 + 3 变成 2 * x + 233 -(x * 8 + 3) 然后把x变成虚数1j 然后变成 2 * 1j + 233 -(1j * 8 + 3) 通过eval算出结果为230-6j 因为我们知道这个表达式结果为0,而且j也相当于x。 所以问题变成了:230-6j=0,也就是230-6x=0。 最后x = – 230 / 6 =
(More)…
我的FTP Server——ftp.py
在上文中,我们简要地学习了下FTP协议,链接 http://everet.org/2012/03/ftp-protocol.html。 有兴趣的同学们可以去围观下。 因为最近偶看了下FTP协议,所以决定写个FTP Server玩玩。毕竟一直写的都是应用程序,于是乎想写下服务器端的程序。 结果就有了ftp.py,名字灵感来源于web.py。 ftp.py ftp.py由Python 2.x实现。目前有部署到我的服务器上。支持Windows、Unix和类Unix系统。支持多线程模式和多进程模式,不过在Windows上仅支持多线程模式。支持虚拟用户。 其中多进程模式支持以其他用户身份运行,加强了安全性。 其中用户设置写在ftp.py.config中,如果文件不存在则默认使用anonymous账户。 用户设置文件ftp.py.config格式如下: account_info = { ‘et’:{‘pass’:’123456789′, ‘home_dir’:’/root/’}, ‘lst’:{‘pass’:’987654321′, ‘home_dir’:’/tmp/’} } 也就是账户名+密码+家目录路径。 ftp.py.config 我们还可以在ftp.py的同级目录中通过ftp.py.config设置我们的FTP Server。 最大用户连接数 limit_connection_number 超时时间(单位:秒)timeout 默认家目录:default_home_dir 日志文件:logfile 运行的用户身份:runas_user 默认值为: 源码如下:
Python端口转发及重定向实现Eclipse的TCP/IP Monitor
记得在上个学期的时候选了徐扬老师的《Web服务与面向服务的体系结构》,讲了SOA之类的一堆东西。然后实验就是要4个下午做完IBM一个星期的培训课程…… 于是偶们便开始无脑地照着下面这本手册来狂做实验。记得要做10多个实验,算一下一个下午要做2-3个实验,所以当场做的话只能无脑操作鸟。不能不说是教育的悲哀啊。 记得在做“Exercise 7. Creating Web service clients”,有一小节是使用TCP/IP Monitor来检查SOAP消息。 也就是在Eclipse的TCP/IP Monitor中,设置监听一个端口如9081,然后设置你的SOA服务器的端口9080。然后你和9081端口的通信就会重定向到了9080.然后你就可以看到他们的数据传输。
Python进行图像处理——生成交替颜色的格子图
今天小孟师兄要一张贴图做测试,屠文翔同学用Fireworks花了两分钟做了下面的一张图片。但是师兄说要一张颜色相隔的图片,于是Fireworks此时就显得有点力不从心了。于是此时Python就要上场啦。 Fireworks生成的图: 好,下面,我们来用Python的PIL库来敏捷地生成一个颜色相隔的格子图。只需要10行代码。
