2012-07-10 44 views
1

什麼是源代碼的依賴程度,可以通過以下編程語言的源代碼檢查得到解決 - Java,Python和Lisp的。上市源的依賴

例如,我可以肯定地說通過在Python的文件的集合是看檢查所有的「舶來品」,在每一個文件的語句是唯一的依賴(來源依賴)?

在Lisp中,我知道的(負載「文件名」),其允許包括在其他文件中定義的函數的命令。

+0

這就是我的目標。我已經指定了我希望得到答案的語言,而且這個問題本身似乎很自我解釋。 – user866098 2012-07-10 08:30:24

+0

首先,我並沒有說這是一個偉大的SO問題。我也不期待一個「很好」的答案。我只是想了解如何輕鬆解決源代碼依賴關係。當然,不同的編程語言可能有不同的方式。 – user866098 2012-07-10 17:51:21

回答

1
  1. 即使您發現任何類型的「import」語句,它都不能確保代碼將使用它。

  2. 在Java中,你可以導入一個名稱空間,而且使用類的完全合格的名稱,沒有任何import語句

    javax.swing.JButton中,但=新javax.swing.JButton中(「myButton的」) ;

  3. 最後但並非最不重要所有的人都支持某種象徵性的節目。您可以使用純字符串來獲取代碼加載或執行:

    Object x = Class.forName(「javax.swing。」+ compName); return x.toString();

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

下載的代碼塊所以沒有你不能肯定地說

+0

偉大的答案gnibbler!你能解釋一下你的意思嗎......「可能不會導入你期望的os模塊......」? – user866098 2012-07-10 17:49:34

+0

@ user866098,如果你看看'sys.path',你會看到python庫通常在當前目錄之後。所以如果你在當前目錄下有'os.py',它會找到一個而不是python庫。由於可以修改'sys.path',所以你甚至可以在標準的python庫之前有更多的目錄,其中任何一個可以有一個名爲'os.py'的文件 – 2012-07-10 23:29:40