如何在python中检查函数是否调用函数?没有模拟或单元测试。

时间:2016-10-16 11:35:41

标签: python

我只是想检查一个特定的函数是否被其他函数调用。如果是,则我必须将其存储在不同的类别中,并且不调用特定功能的函数将存储在不同的类别中。 我有3个.py文件,其中包含类和函数。我需要检查每个功能。例如让我们说一个函数试验()。如果函数调用此函数,则该函数在示例类别中为非示例。

1 个答案:

答案 0 :(得分:0)

我不知道你在问什么,但即使它是technically possible,也是唯一的答案:不要这样做。

如果您的设计是这样的,方法A需要知道它是从方法B还是C调用的;那你的设计很有可能...... 破碎。在您的代码中具有这样的依赖关系将快速使整个事物无法维护。只是因为你很快会不断地问自己"这条路似乎很好,但会在这里发生吗?"

其中一种方法:创建不同的方法;所以B可以像C一样调用别的东西;但是,当然,您仍应将公共部分提取到一个方法中。

长话短说:我的答案是:采取你目前的设计;并让其他人审查它。因为你应该退出现在正在做的事情;并找到一种不同的方式!您知道,大多数情况下,当您开始考虑在当前代码中解决问题的奇怪/尴尬方法时,真正的问题 是您当前的代码。

编辑:给出您的意见......后续问题将是:这种分类的目的是什么?它需要多久发生一次?你知道吗,它只会发生一次(然后手动计数可能是一个选项),或者每次和任何变化之后?对于"手册"事情 - 像pycharm这样的想法在分析python源代码时相当不错,你可以做一些简单的事情,例如"在工作空间中搜索用法" - 因此IDE会列出调用某些方法A的所有方法。但当然,这仅适用于一个级别

我看到的另一个选项是:编写一些导入所有方法的测试代码;然后看看inspect模块对你的帮助程度。可能你真的可以遍历一个完整的方法体,只需搜索匹配的方法名称。