2

メタクラスに関するこの優れた投稿について読んでいました Python のメタクラスとは? . 受け入れられた回答はtype、次の署名を使用してクラスを作成する方法を示しています。

type(name of the class, 
      tuple of the parent class (for inheritance, can be empty), 
      dictionary containing attributes names and values)

オブジェクト クラスを作成したのは誰なのか、気になります。オブジェクトクラスもクラスによって作成されtypeますか?

4

3 に答える 3

6

理論的には、あなたは正しいです。objectのインスタンスですtype。しかし、 の基本クラスを確認すると、 から継承されtypeていることがわかります。どうすればいいの?typeobject

実のところ、これは Python インタープリターでハードコーディングされています。objectとの両方typeが与えられます。どちらも実際には他の作成に関与していません。

于 2012-06-25T20:07:28.800 に答える
3

オブジェクト/タイプ階層のこれらの希少なレベルで覚えておくべき主なことは、.pyファイルのようなものobjecttypeまったく作成されず、CPythonのその他の基本的な基盤とともにCコードで静的に作成されるということです。したがって、特定のPythonコードで必ずしも「作成」されるとは限りません。

于 2012-06-25T20:30:44.727 に答える
0

typeちょっと -うーん、どう説明したらいいのかわからない - 変な言語です。

type(someobj) を実行するために使用したり、ある種のコンストラクター (3 つのパラメーターを使用) として使用して、インスタンスを持つベースから派生した新しい型を作成したりできます。メタクラスで見たように - ファクトリ クラスを作成すると便利です - ただし、あまりにも巧妙になりたくない場合を除き、クラス デコレータを使用すると、2.6+ でこれが少し簡単になります。

于 2012-06-25T20:13:04.640 に答える