2016-12-19 8 views

答えて

0

私はこれが遅れていることを認識しており、すでにあなた自身がこれに答えている可能性があります。

まず、kwdsの引数がtypes.new_classであると誤解しているようです。それは

class MyMeta(type): 
    def __new__(metacls, name, bases, attrs, **config): 
     print(config) 
     return super().__new__(metacls, name, bases, attrs) 

    def __init__(cls, name, bases, attrs, **config): 
     super().__init__(name, bases, attrs) 

class SomeCls(metaclass=MyMeta, debug=True): 
    pass 

>> {'debug': True} 

がメタクラスを設定する場合、これらのメタ引数は便利です

SomeCls = types.new_class("SomeCls",(), {'debug':True}) 

(印刷なし)に類似している例えば、クラスキーワード引数です。

new_classは、呼び出し可能なvs dictを直接受け入れるように設計されていましたが、相互に継承していない「新しい」クラス間の暗黙的な共有状態を避けることはできませんでした。

関連する問題