ホームページ  >  記事  >  バックエンド開発  >  Python のオブジェクトと型の詳細な紹介

Python のオブジェクトと型の詳細な紹介

高洛峰
高洛峰オリジナル
2017-03-20 11:25:311881ブラウズ

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 も変更できません。オブジェクトのタイプは、オブジェクトがサポートする操作 (例: 「長さはありますか?」) を決定し、オブジェクトの可能な値も定義します。そのタイプ。 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 のオブジェクトと型の詳細な紹介

これらの問題をより本質的な観点から見ると、Python ドキュメント ->3. データ モデル ->3.1 オブジェクト、値、型 [Python 公式標準ライブラリを参照してください] から理由が見つかるはずです。 ]、標準ライブラリで見ることができます:

オブジェクトはPythonのデータの抽象化であり、Pythonプログラムによるデータの集中表現です。

すべてのオブジェクトには ID、タイプ、値があります。

  • オブジェクトのタイプによって、オブジェクトによってサポートされる操作が決まります。

  • 一部のオブジェクトの値は変更できます。 値を変更できるオブジェクトは可変オブジェクトと呼ばれ、作成後に値を変更できないオブジェクトは不変オブジェクトと呼ばれます。

したがって、Python の全体的な設計システムの観点から見ると、最初にオブジェクトがあり、次に識別子、型、値があり、その後にオブジェクトに対する操作などが続きます。これは、図 3 の結果の理由も説明します。

以上がPython のオブジェクトと型の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。