0

次のプログラミング言語 (Java、Python、Lisp) のソース コードを調べて解決できるソース コードの依存関係の程度はどれくらいですか。

たとえば、Python ファイルのコレクションを見て、すべてのファイルのすべての "import" ステートメントが唯一の依存関係 (ソース依存関係) であると断言できますか?

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. そして最後になりましたが、それらのすべてがある種のシンボリック プログラミングをサポートしています。プレーンな文字列を使用して、コードをロードまたは実行できます。

    Object x = Class.forName("javax.swing."+compName); x.toString() を返します。

于 2012-07-10T06:23:10.137 に答える