检查两个功能是否相同

时间:2020-08-21 20:21:42

标签: python

我有以下问题。

我的程序将大量使用插件,这些插件将执行计算要求很高的任务。但是在程序的不同运行中,所需的操作(由插件执行)可能是相同的。为了加快运行速度(除其他原因外),我想检测到用户为该程序提供了相同的插件。就我而言,插件只是可调用的。

问题是-我怎么能检测到它?

当然,如(*)中所指出的,对于这种检查,代码等效是绝对必要的。但是显然,这还不够(**)。

因为我将按参数名称(即dict解压缩)传递参数,所以肯定需要检查相同的参数在函数中起相同的作用。

从某种意义上说,显然必须禁止某些事情。例如,从文件中加载一些数据并从中产生输出(那么任何有意义的检查都是不可撤消的。)

理想情况下,我想实现一种在函数式语言中运行良好的类似机制,即函数的输出完全由其参数的值确定。然后,如果函数接收相同的参数集,则可以仅加载其输出(尽管在程序的一次运行中)。这种机制依赖于这些功能是无状态的事实。

为了更清楚地陈述我的问题-我需要设置什么样的限制(不一定可以检查-它们只能记录在案),以使我能够检查其中两个相同的功能? (例如,仅使用局部变量,不使用闭包等。)此外,这些限制在实践中的样子。

我的问题来自以下事实:我对Python中的函数表示方式了解甚少,因此,如果有人知道有关此问题的全面文本或视频,那也将有所帮助。

谢谢。

(*)Check if two Python functions are equal

(**)https://gist.github.com/sharth/7536465

0 个答案:

没有答案