0

、スコットPythonには静的オブジェクト、スタックオブジェクト、ヒープオブジェクトがありますか?プログラミング言語の語用論から

ことによって、オブジェクトの寿命は、一般的に、オブジェクトの領域を管理するために使用される三つの主要 ストレージ割り当てメカニズムの1つに対応する:

  1. 静的オブジェクトは絶対アドレスが与えられていますこれはプログラムの実行中も保持されます。

  2. スタックオブジェクトは、通常、サブルーチン呼び出しと返り値とともに、最後尾、最初の順序で割り当ておよび割り当て解除されます。

  3. ヒープオブジェクトは、任意の時間に割り当てられ、割り当て解除される可能性があります。より一般的な(そして高価な)ストレージ管理アルゴリズムが必要です。

C言語には、静的オブジェクト、スタックオブジェクト、およびヒープオブジェクトがあります。

Pythonには静的オブジェクト、スタックオブジェクト、およびヒープオブジェクトがありますか?

in another post CPythonがヒープ上のすべてのオブジェクトを割り当てていることがわかりました。 Pythonのすべてのオブジェクトがヒープオブジェクトであることを意味しますか?

しかし、Pythonには静的メソッドもあります。 PLPブックのPython静的オブジェクトの静的メソッドはありますか?

ありがとうございました。

+0

静的メソッドは、PLPブックの静的オブジェクトではありません。メソッドのバインディング動作を無効にする記述子オブジェクトです( 'self'は渡されません)。おかげさまで –

答えて

2

Pythonオブジェクトは、ほとんどヒープ・オブジェクトである - しかし、Cにおける静的あるCPythonのにおけるいくつかの特別なPyObjectシングルトン値が存在します。これは実装の詳細ですがたとえば、通常組み込まれているタイプのには、静的な記憶期間があります。私が知っているスタック(Python)オブジェクトはありません。

ここで理解されるように、静的記憶期間は、静的メソッドとはまったく関係ありません。

+0

「静的なCPythonの特別なシングルトン値」とは何ですか? CPythonにスタックオブジェクトがありますか? – Tim

+0

@Tim私は小さな整数も静的なシングルトンだと思います。 'id()'でメモリアドレスを取得できます。 'id(255)'と 'id(256)'はお互いに近いところにありますが、 'id(257)'はまったく別の場所です。繰り返しますが、これはすべての実装の詳細なので、物理的にどのように割り当てられているかは気にしないでください。 –

+0

@MarkRansom Cでは、静的なスタックとヒープオブジェクトは実装の詳細ではなく、Cでのプログラミングにとって重要な言語の概念です。私はそれがPythonの場合もそうだと思います。 – Tim

関連する問題