データ構造を表すと思われる軽量クラスを定義したいと思います。多くのデータ構造の場合と同様に、データの順序が重要です。だから私は先に行くと、これを定義する場合:Pythonでクラス属性の定義順を取得するにはどうすればよいですか?
class User(DataStructure):
username = StringValue()
password = StringValue()
age = IntegerValue()
を、私は、これは、パスワードの文字列が続いたユーザ名を持つ文字列が最初に来るのデータ構造、およびユーザーの最後に年齢などがあることを暗示しています整数。
あなたがPythonをよく知っているなら、上記のクラスUser
はtype
を継承するオブジェクトであることがわかります。 Pythonの他のほとんどのオブジェクトと同様に、__dict__
があります。そして、ここに私の問題があります。この__dict__
はハッシュマップなので、__dict__
のクラス属性の順序は決してその定義順に関係しません。
実際の定義順序を把握する方法はありますか?私が考えることのできない、あまり意味のない方法の1つに行く前に私はここに求めています...
ああ、私が望むのは、上記の定義からこれを得る方法です。['username', 'password', 'age']
、私の「あまり正気」ソリューションを中心に歩行器を構築することができますこの値で属性のリストを並べ替えます。これは、メタクラスを使用して行われます。 – Blixt
あなたがここに書いたことの線に沿ってメタクラスを使用することは、私の頭に浮かぶ唯一のことです。 –
さて、カウンターはDjangoチームがやった方法ですから、それを行うのが最善の方法だと私は確信しています。 –