0

通过检查以下编程语言(Java、Python 和 Lisp)的源代码可以解决的源代码依赖程度如何。

例如,我是否可以通过查看一组 Python 文件来确定检查每个文件中的所有“导入”语句是唯一的依赖项(源依赖项)?

在 Lisp 中,我知道 (load "filename") 命令允许包含在其他文件中定义的函数。

4

2 回答 2

1

Python中有更多的导入方式

例如

somemodule = __import__("somemodulename")

也可以在运行时更改路径,例如

import os

可能不会导入os您期望的模块。

您还可以通过其他方式包含代码

execfile(...)
execfile(filename[, globals[, locals]])

Read and execute a Python script from a file.
The globals and locals are dictionaries, defaulting to the current
globals and locals.  If only globals is given, locals defaults to it.

您甚至可以包含存储在数据库中或从 url 下载的代码片段

所以不,你不能肯定地说

于 2012-07-10T06:30:22.857 回答
1
  1. 即使您找到任何类型的“导入”语句,也不保证代码会使用它。

  2. 在 Java 中,您可以导入名称空间,但也可以使用类的完整限定名,而无需任何导入语句

    javax.swing.JButton but = new javax.swing.JButton("MyButton");

  3. 最后但并非最不重要的一点是,它们都支持某种符号编程。您可以使用纯字符串来加载或执行代码:

    对象 x = Class.forName("javax.swing."+compName); 返回 x.toString();

于 2012-07-10T06:23:10.137 回答