我有一个python文件,其中包含的是一个更大的程序的一部分,即文件用于生成一些使用的相同数据,但是我会使用这个程序来获取数据,它是如此之大,旧而且没有文档没有人知道它是如何运作的。
我需要处理这些文件生成的数据,有没有办法模仿动态调用的模块,即我提供了一个我感兴趣的实际方法,然后我为任何方法调用提供了一个假响应'被覆盖了。
我试图通过覆盖__getattrib__方法来做到这一点但却失败了(因为它被错误地删除了我没有可用的源代码)
答案 0 :(得分:2)
添加被调用的方法不是更容易吗?
但是,您可以使用例如Mock库伪造它。
答案 1 :(得分:0)
您不能使用__add__
假冒__getattribute__
等功能。
Here您可以找到需要在班级实施的所有方法,例如__add__
我实施了Proxy that fakes他们。 它甚至可以模拟整数。
覆盖后__getattribute__
this可能会派上用场。
class X(object):
def __getattribute__(self, name): ...
def use_this_getattribute(self):
... # uses getattribute from above
@objectGetattributeFunction
def use_original_getattribute(self):
...