创建一个函数,用于识别现有代码中的无限循环



我正在尝试创建一个函数来识别python文件中的代码是否会通过和无限循环。这是我到目前为止所拥有的:

def reader(filename):
    myfile = open(filename)
    counter = 0 
    #counters the number of lines in the file
    for line in myfile:
        counter +=1
        print line
    #print number of lines in file    
    print counter
    #execute the code in file        
    execution = execfile(filename)

我正在尝试做的是执行文件,也许尝试计算执行了多少行,并将其与前一个计数器中的任何数字进行比较。 例如,如果计数器> lines_exected,则返回 True,则代码中存在无限循环。这行得通吗?还是我必须尝试其他方法?

是不可能的。 阅读停止问题。

此外,即使理论上是可能的,或者即使您只是想进行某种启发式猜测,您显然无法仅通过运行文件来做到这一点。 如果程序有一个无限循环,你将运行无限循环并陷入其中,所以你永远没有机会检查你的计数器。

在一般情况下,这根本无法做到。 你也许能够识别某些简单的情况,这些情况显然是无限循环(while True:),并且有静态分析工具可以做到这一点,但一般来说,没有办法做你想做的事情。

相关内容

  • 没有找到相关文章

最新更新