什麼是源代碼的依賴程度,可以通過以下編程語言的源代碼檢查得到解決 - Java,Python和Lisp的。上市源的依賴
例如,我可以肯定地說通過在Python的文件的集合是看檢查所有的「舶來品」,在每一個文件的語句是唯一的依賴(來源依賴)?
在Lisp中,我知道的(負載「文件名」),其允許包括在其他文件中定義的函數的命令。
什麼是源代碼的依賴程度,可以通過以下編程語言的源代碼檢查得到解決 - Java,Python和Lisp的。上市源的依賴
例如,我可以肯定地說通過在Python的文件的集合是看檢查所有的「舶來品」,在每一個文件的語句是唯一的依賴(來源依賴)?
在Lisp中,我知道的(負載「文件名」),其允許包括在其他文件中定義的函數的命令。
即使您發現任何類型的「import」語句,它都不能確保代碼將使用它。
在Java中,你可以導入一個名稱空間,而且使用類的完全合格的名稱,沒有任何import語句
javax.swing.JButton中,但=新javax.swing.JButton中(「myButton的」) ;
最後但並非最不重要所有的人都支持某種象徵性的節目。您可以使用純字符串來獲取代碼加載或執行:
Object x = Class.forName(「javax.swing。」+ compName); return x.toString();
有更多的方式在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
下載的代碼塊所以沒有你不能肯定地說
偉大的答案gnibbler!你能解釋一下你的意思嗎......「可能不會導入你期望的os模塊......」? – user866098 2012-07-10 17:49:34
@ user866098,如果你看看'sys.path',你會看到python庫通常在當前目錄之後。所以如果你在當前目錄下有'os.py',它會找到一個而不是python庫。由於可以修改'sys.path',所以你甚至可以在標準的python庫之前有更多的目錄,其中任何一個可以有一個名爲'os.py'的文件 – 2012-07-10 23:29:40
這就是我的目標。我已經指定了我希望得到答案的語言,而且這個問題本身似乎很自我解釋。 – user866098 2012-07-10 08:30:24
首先,我並沒有說這是一個偉大的SO問題。我也不期待一個「很好」的答案。我只是想了解如何輕鬆解決源代碼依賴關係。當然,不同的編程語言可能有不同的方式。 – user866098 2012-07-10 17:51:21