
python
huangyiiiiii
这个作者很懒,什么都没留下…
展开
-
字典与动态语言
字典(或者叫哈希表、关联数组..)与动态语言的渊源可谓极深。动态语言之所以动态,归根结底是因为把对变量的求值放在了运行时完成而非静态语言的编译时确定。动态语言程序中众多的不同层次的名字空间(或者说作用范围)其实就是一个个的字典,变量名为 key,对象为 value。 而对变量求值的过程就是对所在名字空间查找的过程,根据变量名,找出相应的对象,有时候在局部名字空间中没找到,还可能会自动跑到外部...2007-03-19 10:18:22 · 101 阅读 · 0 评论 -
Python and vim: Two great tastes that go great together
Python and vim: Two great tastes that go great together用 python 扩展 vim ,想法倒是不新,不过第一次看到 tutotial 。记得 tocer 说过要用 python 写个 vim 库的,不知道有没有进展哈,呵呵。...2007-05-26 08:29:34 · 87 阅读 · 0 评论 -
python is obvious !
初识 python 的时候常常会被一些陌生的概念绊倒,而当熟悉了这些概念之后你会发现它们原来是如此的简单明了!由于它们是如此的简单,所以我试图在*一*篇文章中就想把它们全部都介绍一遍。 万物皆对象,甚至一个小小的整数也不例外;而变量只是一个名字,它可以绑定到任何一个对象;使用内置函数 id 可以查看绑定的对象的 id ,语言的实现会保证两个不同对象的 id 是绝对不一样的。 &g...2006-09-18 17:40:33 · 96 阅读 · 0 评论 -
compatibility of IronPython
IronPython 1.0 的发布,在邮件列表中引起了很多争论 ,有的人担心 IronPython 会污染了 CPython 标准的纯洁,也有人希望 IronPython 的兴起会给 Python 社区注入新的力量。而在我看来,这些争论归根到底,就是一个兼容性的问题。在 .net 程序员看来,它是 IronPython 和 .net 的兼容性,和其它 .net 程序的互操作性如何;而在 pyt...2006-09-19 03:58:14 · 79 阅读 · 0 评论 -
使用 python 模拟 ruby 的 open class
老早就写了这些代码,但一直懒得为它写篇博客,我觉得我永远也无法理解为什么会有人发明这种奇怪的东西。不过终于还是决定写一篇吧,多一点有意思的代码也许能吸引更多人对 python 的兴趣呢,呵呵。虽然我对 ruby 的这个东西有许多贬义词想说,不过想想既然有人用,也就应该有其理由吧。且看代码:def update( klass, bases, attrs ): for k,v in attrs....2007-01-27 11:42:36 · 109 阅读 · 0 评论 -
do it runtime
第一次从静态语言到动态语言的人肯定在思维上需要一个比较大的跳跃,主要是许多静态语言中编译器干的事情到动态语言中后,或是不存在了,或是需要在运行时进行。 典型的例子包括:类型检查,重载,访问控制,常量。(暂时就想到这几个,还有一些代码生成的技术像define、template我们就不提了) 1、类型检查。 对于类型检查我想大部分人倾向于可选地进行...2007-01-20 11:19:12 · 86 阅读 · 0 评论 -
metaclass in python (part 2)
接着上一篇的讲。现在我们知道了,metaclass 生 class,class 生 instance。但是 metaclass 还可以有它的 metametaclass,metametaclass 还可以有... 如果反复,永无止境。这样想起来,脑袋就有点晕了。其实在 python 中万物皆对象而已,所有对象皆有其类型,对象的类型也还是对象!而类型对象的类型就是它自己。而前面说过的所谓 ...2006-12-12 14:24:36 · 86 阅读 · 0 评论 -
python types and objects
在探寻 metaclass 的过程中,对以前熟知的 OO 又有了全新的认识。我开始感觉到,只有在动态语言的世界,才有可能对这些概念有如此通透的理解。在静态语言中,type 和 instance 之间永远隔着编译期和运行期之间的鸿沟。而在动态语言中,简单的 object 的概念统一世界,type 和 instance 突然变得如此的一致(都是object),其间并没有本质的区别。我们只有按照逻辑...2006-12-16 14:02:46 · 119 阅读 · 0 评论 -
selfless python
Eliminating self with Metaclasses此文利用 metaclass 和字节码,使得在 class 中定义方法时不再需要显式指定 self 参数,当真妙极!关于这个 self 参数是否多余,本身也是仁者见仁、智者见智的事情。我认为 python 这么做是有它充分的理由的,那就是 class 中定义的方法本质上还是函数,是函数就应该遵循函数的规矩,没必要对方法进行特...2006-12-18 04:07:14 · 101 阅读 · 0 评论 -
理解 python 的 method 和 function 兼谈 descriptor
总是看到有人对 python 中的 method 和 function 之间关系的困惑,其实初学 python 时我也困惑过,不过现在自认为对这个问题还是基本清楚了 ;-)。我在前面写过的 selfless python 里面说过 method 本质上就是 function,这个从它们的形式上也看得出来,呵呵,而让人困惑的问题主要就是那个隐式传入的 self 参数。这其实是利用了descript...2007-01-01 07:34:36 · 190 阅读 · 0 评论 -
写了个方便下载 tudou 网视频的小程序
http://huangyilib.googlecode.com/svn/trunk/tudou_dl.py只要给它视频播放页面的地址,比如:http://www.tudou.com/programs/view/AmYV7YnHqBU/ 它能帮你找出实际的 flv 视频下载地址:http://hot.tudou.com/flv/003/900/922/3900922.flv#81100#...2007-01-09 12:26:20 · 128 阅读 · 0 评论 -
Build extensible application with egg
在 python 社区中 egg 已经是一种广为人知的格式了。众所周知对于 python 来说 egg 是一种用来生小蛇的东西,小蛇自然就是 python 软件包了(纯属瞎扯 ;-)。简单地说,egg 之于 python 正如 jar 之于 java。是一种软件包打包的格式——要注意的是这个格式并非文件格式,实际上 egg 可以使用多种文件格式,当然最常用的还是 zip ——这里的格式主要是指...2007-01-17 02:49:01 · 84 阅读 · 0 评论 -
Be Pythonic
Be PythonicWhat is PythonicPython is not Javapath 操纵文件系统的 pythonic 的做法2006-10-19 03:05:43 · 96 阅读 · 0 评论