8

私はPythonが初めてです。Java、C/C++、および OCaml に精通しています。大学で取ったプログラミング言語コースのおかげで、ラムダ計算と基本的な型理論を理解しています。

この背景で武装して、私はこれを読もうとしました - http://www.cafepy.com/article/python_types_and_objects/python_types_and_objects.html

どこかで、彼はこれについて言及しています:

  • (type 'object') は (type 'type') のインスタンスです
  • (type 'object') は no object のサブクラスです。
  • (type 'type') はそれ自体のインスタンスです。
  • (type'type') は (type 'object') のサブクラスです

私は貧弱な頭脳をこれに巻き込むことができません:

  • (type 'object') は (type 'type') のインスタンスです
  • (type 'type') は (type 'object') のサブクラスです

ここで何が起こっているのですか?私が聞きたいのは、ここで正確に何が起こっているのか、そしてなぜ物事がそのようになっているのかについて、非常に詳細な理由です. 浅い理由や類推はご遠慮ください。

4

2 に答える 2

4

オブジェクトについて具体的に話しているtype。の場合type、すべての型は から継承され<type 'type'>ます。

<type 'type'>他のステートメントは、それがobject;であることを指摘しているだけだと思います。さらに下を見て考えた例:

t = list.__class__ # <type 'type'>
t.__bases__ # (<type 'object'>,)
于 2012-11-23T04:13:58.083 に答える
0

型の概念はクラスと同じであるため、通常のオブジェクト指向の手法とクラス構文を使用して型をサブクラス化し、それをカスタマイズできます。

また、クラスは実際には型クラスのインスタンスであるため、型のカスタマイズされたサブクラスからクラスを作成すると、カスタムの種類のクラスを実装できます。

新しいスタイルのクラスでは:

  • type は、ユーザー定義のクラスを生成するクラスです。
  • メタクラスは型クラスのサブクラスです。
  • クラス オブジェクトは、タイプ クラスのインスタンス、またはそのサブクラスです。
  • インスタンス オブジェクトは、クラスから生成されます。
于 2016-09-13T15:46:50.093 に答える