2012-04-19 5 views
0

プログラムを実行すると(ある関数を含む)関数のアドレスをメモリに保存しますこれらの関数を実行せずに再利用することができます。あなたは私にいくつかのアイデアを与えることができますか(一般的にまたは特にPython、C/C++、...)。私はこれをgoogledが、私はそれを取得していない:(私はメモリ管理(割り当て、メモリの自由、常駐メモリ...私は推測する)のいくつかの種類を考えていた 例:私は、 (プログラムが実行されたときに生成されます)どうすれば再利用できますか? ありがとうございます再実行せずに再利用するための関数を保存する

+0

この質問は非常に不明です。どのような問題を解決しようとしていますか?関数を呼び出さずに関数を呼び出すとはどういう意味ですか?これはかなり矛盾しているようです。 –

答えて

1

まあ、Pythonでは、関数はオブジェクトなので、渡したり、割り当てたり、どのラベルからでも呼び出すことができますあなたはそれをエイリアスするのに使ったことがあります。また、id(メモリロケーション/ guid相当)を取得することもできます。メモ/データの読み込みが覚えているのであれば、一般的には次のようになります。

class Foo(object): 
    @staticmethod 
    def get_val(): 
     try: 
      return Foo.__val 
     except AttributeError: 
      #do run-once logic here, assign to Foo.__val 
      return Foo.__val 
+0

例えば、初めて(1回のみ)、F関数をどこかで実行します。今、メモリ内で、F関数はとして格納されます。私が意味することは、F(住所などで)を再実行せずに呼び出すことができるということです。通常、プログラムが実行されている場合はFを呼び出すのは簡単ですが、必要なのは、プログラムが停止していてもFを呼び出すことができることです。時には、それは再帰アルゴリズムの線形化に非常に便利です。一度実行すると機能を保存し、後で再利用することができます。 Btw、多くのお返事ありがとうございます! – s0nl4c

+0

@azalea「...関数は...として保存されています」と言うとき、関数の結果(戻り値)または実際の関数自体を意味しますか?私はコードを再実行しないことについて話しているので、前者を仮定しています。 try/exceptブロックの別の方法は、関数が返されたときに関数にアクセスするために使用するラベルに格納されている値を実際に上書きすることです。これはあなたがやろうとしていることですか? –

+0

いいえ、私はその機能がアドレス0x ...としてメモリに常駐していることを意味します。私はメモリ内の機能を利用できる方法を探しています。コンピュータのメモリ(すなわち、メモリ常駐ウイルス...私は推測する)から。 あなたが理解しているかどうかわからない、そのアイデアはそこにある! – s0nl4c

関連する問題