模块上的__getattr__
如何__getattr__
在模块上实现类的等价?
当调用模块静态定义的属性中不存在的函数时,我希望在该模块中创建一个类的实例,并在模块上的属性查找中使用与失败相同的名称调用其上的方法。
class A(object): def salutation(self, accusative): print "hello", accusative# note this function is intentionally on the module, and not the class abovedef __getattr__(mod, name): return getattr(A(), name)if __name__ == "__main__": # i hope here to have my __getattr__ function above invoked, since # salutation does not exist in the current namespace salutation("world")
这使:
matt@stanley:~/Desktop$ python getattrmod.py Traceback (most recent call last): File "getattrmod.py", line 9, in <module> salutation("world")NameError: name 'salutation' is not defined
天涯尽头无女友
守着一只汪
相关分类