1. Pythonの説明の一部抜粋 Documentation 3.5.2
オブジェクトは、Pythonプログラム内のforデータのabstractionです。 (ある意味、「ストアド プログラム コンピューター」のフォン ノイマンの モデル に従って、コードもオブジェクトによって表現されます。)
オブジェクトは、Python によるデータの抽象化です。 Python プログラム内のすべてのデータは、オブジェクトまたはオブジェクト間の関係によって表されます。 (ある意味、フォン・ノイマンの「ストアド プログラム コンピューター」のモデルと一致して、コードはオブジェクトによっても表現されます)。 すべてのオブジェクトには ID、型、および値があります。オブジェクトの ID は、メモリ内のオブジェクトのアドレスとして考えることができます。アイデンティティ
すべてのオブジェクトにはアイデンティティ、タイプ、値があります。 オブジェクトの ID は、作成されると変更されません。メモリ内のオブジェクトのアドレスと考えることができます。 「is」 演算子 は 2 つのオブジェクトの ID を比較し、 id() is
‘ operator compares the identity of two objects; the id()
関数 はそれらの ID を表す整数を返します。
type も変更できません。オブジェクトのタイプは、オブジェクトがサポートする操作 (例: 「長さはありますか?」) を決定し、オブジェクトの可能な値も定義します。そのタイプ。 type() 関数は、オブジェクトのタイプ (オブジェクト自体) を返します。アイデンティティと同様に、オブジェクトの型も不変です。 2. Pyhtmlの説明:
object:
class object The most base type
type:
class type(object) type(object_or_name, bases, dict) type(object) -> the object's type type(name, bases, dict) -> a new type
上記の3つの図からわかるように、objectオブジェクトは最も基本的な型であり、全体的に抽象的な概念ですデータの。 type は、object オブジェクトと比較して、より具体的な抽象概念です。これは、type(int)、type が、オブジェクト オブジェクトからより具体的な抽象概念を洗練するための要素をすでに備えているためです。 (
float)、type(str)、type(list)、type(tuple)、type(
set) などはすべて型です。そのため、instance(type, object) と instance(object, type ) はすべて True です。つまり、 type type は int や float などの型の全体的な概念です。では、なぜ issubclass(type, object) が True で、issubclass(object, type) が False なのでしょうか? 2 番目の図、つまり継承関係から、type はオブジェクトのサブクラスであるため、前者が True、後者が False であることがわかります。 Python言語の全体設計の観点から見ると、まずオブジェクトがあり、次に比較的特定の型があり、部分よりも全体を優先するという設計思想があります。
これらの問題をより本質的な観点から見ると、Python ドキュメント ->3. データ モデル ->3.1 オブジェクト、値、型 [Python 公式標準ライブラリを参照してください] から理由が見つかるはずです。 ]、標準ライブラリで見ることができます:オブジェクトはPythonのデータの抽象化であり、Pythonプログラムによるデータの集中表現です。
すべてのオブジェクトには ID、タイプ、値があります。したがって、Python の全体的な設計システムの観点から見ると、最初にオブジェクトがあり、次に識別子、型、値があり、その後にオブジェクトに対する操作などが続きます。これは、図 3 の結果の理由も説明します。
以上がPython のオブジェクトと型の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。