美文网首页
__getattr__与__call__的联合使用

__getattr__与__call__的联合使用

作者: MononokeHime | 来源:发表于2018-07-05 11:18 被阅读0次

__getattr__可以定义那些访问对象没有的属性时候该做如何处理,但是如果访问对象没有的函数时该如何处理呢?

class Foo(object):
    def __getattr__(self, item):
        print(item)
        return  Foo()
    def __call__(self, *args, **kwargs):
        print(args)
        print(kwargs)
        return 10

foo=Foo()
print(foo.a(10,m=20)) # 看上去是调用函数a(),其实是通过__call__来让对象像函数一样调用

输出

a
(10,)
{'m': 20}
10

相关文章

网友评论

      本文标题:__getattr__与__call__的联合使用

      本文链接:https://www.haomeiwen.com/subject/ponuuftx.html