python3 __getattr__-这样查找问题的方法

时间:2019-01-25 08:47:48

标签: python-3.x

有一个很大的代码库,我需要将所有其余调用都更改为graphql调用。 休息时间可能是鸡蛋。 getAccounts-它将更改为一些生成的graphql调用 问题在于,其中一些休息电话是通过 getattr 调用的,我不知道如何轻松找到它们。 代码鸡蛋。

class ApiThing:

    def _rest_call(self, func):
        print("rest_call", func)
        return dict(some_result=10)

    def real_method_on_rest(self):
        #egg. getAccounts
        return self._rest_call('real_method_on_rest')

    def __getattr__(self, arg):
        def virtual_method():
            return self._rest_call(arg)

        self.__setattr__(arg, virtual_method)
        return virtual_method

api_caller = ApiThing()

res1 = api_caller.real_method_on_rest()
res2 = api_caller.some_other_real_method_on_rest()  # how do I find these calls???

现在,我唯一想到的就是搜索“ api_caller”。在此示例中,检查该方法是否存在。但是代码库很大,API也很多。 ApiThing使用不同的参数名称,扩展名等来传递。

如何摆脱困境? 我如何找到未定义的方法(必须重写)

0 个答案:

没有答案