ホームページ > バックエンド開発 > Python チュートリアル > Pythonでのメタクラスの使用例

Pythonでのメタクラスの使用例

WBOY
リリース: 2016-06-16 08:41:10
オリジナル
1203 人が閲覧しました

この記事の例は、Python でのメタクラスの使用法を説明しており、参考のために全員と共有されています。具体的なメソッド分析は次のとおりです。

1.メタクラスはクラスを作成するために使用されるクラスです

2.type(object): object.__class__ の値と同じオブジェクトの型を返します。type(name,bases, dict): 新しい型 type を作成します。 name は新しいクラスの名前、値は __name__ 属性に格納されます、bases はタプル型、値は __bases__ に格納され、dict の値は __dict__ に格納されます

コードをコピー コードは次のとおりです:
class X:
... a = 1
...
X = type('X', (object,), dict(a=1))

3. クラスはデフォルトで type() を使用して作成されます。クラスを定義するときにメタクラス パラメーターを指定するか、メタクラス パラメーターを指定したクラスを継承することで、クラスの作成プロセスをカスタマイズできます。

コードをコピーします コードは次のとおりです:class OrderedClass(type):
#このメソッドの戻り値は __new__ の名前空間パラメータです。そのようなメソッドが存在しない場合、名前空間の値は dict()
になります。 @クラスメソッド
Def __prepare__(metacls, 名前, 塩基, **kwds):
戻り collections.OrderedDict()
#namespace はクラスの __dict__ です。この dict 型オブジェクトには対応する値が入力されています。
Def __new__(cls, 名前, ベース, 名前空間, **kwds):
result = type.__new__(cls, name, Bases, dict(namespace))
result.members = タプル(名前空間)
結果を返します
クラス A(metaclass=OrderedClass):

def one(自分): パス
def two(self): pass
def 3(自分): パス
def four(自分): パス
print(A.メンバー)
#('__module__', '__qualname__', 'one', 'two', 'three', 'four')

この記事が皆さんの Python プログラミングに役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート