2024-09-30 12:20:30 发布
网友
testability-explorer是一个工具,用于测量java程序单元测试的难度。有没有类似于Python的工具?在
由于Python是一种动态语言,“检查”字节码可能不会发现任何有用的东西。Python程序可以使用exec、execfile()和{}来“动态”引入代码,从而挫败字节码分析。在
exec
execfile()
不可模仿的总递归圈复杂度。假设字节码实际上是正在执行的所有代码,则可以计算总的递归圈复杂度。然而,不可模仿的思想并不适用于Python。Python有monkey补丁,这使得它很容易模仿Python中的任何东西。在
假设存在exec,execfile()和{}操作意味着计算实际总圈复杂度的唯一方法是分析加执行的组合。在
全局可变状态。有模块全局变量加上适当的global全局变量。模块全局变量是“自由变量”,可以通过检查字节码找到。global全局变量都是用global专门标记的,并且可以像字节码一样容易地在源代码中找到。在
global
德米特定律。这个很有趣,可以通过检查字节码找到。然而,上述警告适用。只有假设没有exec、execfile()或__import__()操作,它才有用。在
__import__()
由于testability explorer中的大多数分析都不容易应用于Python,所以人们不花大量时间来编写这样的工具也就不足为奇了。在
由于Python是一种动态语言,“检查”字节码可能不会发现任何有用的东西。Python程序可以使用}来“动态”引入代码,从而挫败字节码分析。在
exec
、execfile()
和{不可模仿的总递归圈复杂度。假设字节码实际上是正在执行的所有代码,则可以计算总的递归圈复杂度。然而,不可模仿的思想并不适用于Python。Python有monkey补丁,这使得它很容易模仿Python中的任何东西。在
假设存在}操作意味着计算实际总圈复杂度的唯一方法是分析加执行的组合。在
exec
,execfile()
和{全局可变状态。有模块全局变量加上适当的
global
全局变量。模块全局变量是“自由变量”,可以通过检查字节码找到。global
全局变量都是用global
专门标记的,并且可以像字节码一样容易地在源代码中找到。在德米特定律。这个很有趣,可以通过检查字节码找到。然而,上述警告适用。只有假设没有
exec
、execfile()
或__import__()
操作,它才有用。在由于testability explorer中的大多数分析都不容易应用于Python,所以人们不花大量时间来编写这样的工具也就不足为奇了。在
相关问题 更多 >
编程相关推荐