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的部分,可以替换成自定义的代码即可,你可以为类添加上这个缺少的方法,或者告诉用户一个错误,或者调用一个默认方法,等等:)
In [9]: class A:
...: def __getattr__(self,name):
...: if name in self.__dict__:
...: return name
...: else:
...: return "XXXXX"
...:
else的部分,可以替换成自定义的代码即可,你可以为类添加上这个缺少的方法,或者告诉用户一个错误,或者调用一个默认方法,等等:)


0 Comments:
发表评论
<< Home