(すべてActivePython 3.1.2で)
(インスタンスではなく)クラス属性を変更しようとしました。__dict__
メタクラスのは完璧な解決策のようでした。しかし、変更しようとすると、次のようになりました。
TypeError:'dict_proxy'オブジェクトはアイテムの割り当てをサポートしていません
なぜ、そして私はそれについて何ができますか?
編集
クラス定義内に属性を追加しています。
setattr
クラスがまだ構築されていないために機能しません。したがって、まだ参照できません(または少なくとも方法がわかりません)。
多数の属性を追加しているため、従来の割り当ては機能しません。属性の名前は特定のルールによって決定されます(したがって、単に入力することはできません)。
言い換えれば、私が;を通してclass A
属性を持ちたいとしましょう。そして、それらすべてを完全に構築する前に定義する必要があります(そうしないと、SQLAlchemyが適切に計測しないため)。A.a001
A.a999
また、元のタイトルでタイプミスをしたことにも注意してください__dict__
。変更したいのは、メタクラスではなく、通常のクラスです。