Python:在任何函数调用中创建一个返回None的类

时间:2015-12-15 23:12:31

标签: python function class

我想知道是否有可能创建一个类,无论什么"方法"总是返回None。被称为。

例如,

# The following all returns None
Myclass.method1()
Myclass.method2(1, 2, 3)
Myclass.method2(1,2) 

基本上,我想实现一个类,例如

  1. 任何未被类定义的非内置方法都被接受并被识别为有效方法。
  2. 第1点的所有方法都将返回None
  3. 我知道mock.MagicMock可以给我这个结果,但它很慢,所以我想知道是否有更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:6)

是的,很容易。

def return_none(*args, **kwargs):
    """Ignores all arguments and returns None."""
    return None

class MyClass(object):
    def __getattr__(self, attrname):
        """Handles lookups of attributes that aren't found through the normal lookup."""
        return return_none