星期六, 十二月 16, 2006

Python的Miss Method

今天参加BJUG的活动,了解到了ruby的一个特性:Miss Method,就是在调用一个类不存在的方法时,可以调用自定义的一个函数。python其实也可以实现这个特性,只要复写__getattr__方法即可,示例代码如下:

In [9]: class A:
...: def __getattr__(self,name):
...: if name in self.__dict__:
...: return name
...: else:
...: return "XXXXX"
...:

else的部分,可以替换成自定义的代码即可,你可以为类添加上这个缺少的方法,或者告诉用户一个错误,或者调用一个默认方法,等等:)

标签: ,

0 Comments:

发表评论

<< Home