有一个很大的代码库,我需要将所有其余调用都更改为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使用不同的参数名称,扩展名等来传递。
如何摆脱困境? 我如何找到未定义的方法(必须重写)