ホームページ >バックエンド開発 >Python チュートリアル >Django のメタクラス
Django (1.6) のフォーム関連のソース コードを見て混乱したため、Django でメタクラスがどのように使用されているかを分析するために django.forms.forms.py からいくつかのコード スニペットを抜粋しました。上記の Python モジュールの場合、コンソールは次のように出力します:
cls:
、name: NewBase、bases: (,)、attrs: {}
cls:
、name: Form、bases: (,)、attrs : {'__module__': '__main__'}
,)、属性: {'a': 1, '__module__': '__main__', 'b': 2}
コード内で MyForm のメタクラスは直接指定されていませんが、MyForm は Form を継承し、Form は DeclarativeFieldsMetaclass によって生成された "NewBase" という名前のクラスを継承するため、実際には DeclarativeFieldsMetaclass が MyForm のメタクラスになります。