1

重複の可能性:
Pythonには__setattr__に似たメソッドがありますが、Pythonクラス用ですか?

フォームを次のように定義できる独自のフォームフレームワークを作成しようとしています。

class LoginForm(forms.Form):
    username = forms.Input(type='text',validators=[validators.Required(),validators.len(3,10)])
    pass‹ord = forms.Input(type='password', validators=[validators.Required(),validators.len(min=8)])

これらのInputインスタンスにもプロパティnameがありますが、これをコンストラクターのパラメーターとして渡す必要がある場合は、変数名で既に名前が付けられているため、ばかげているように見えます。だから私はreplで非常に簡単なテストをしました:

class Base:
    @classmethod
    def __setattr__(cls, key, value):
        cls.__dict__[key] = value
        cls.__dict__[key].name = key

class PropClass:
    pass

class SubClass(Base):
    x = PropClass()

SubClass().x.name

これで「x」が返されることを期待していましたが、返されませんでした。

今のところ、フォームコンストラクターにコードを入れて、そのdictを繰り返し、Fieldインスタンスをチェックし、それらの名前を設定します。これは私にとっても同様に機能しますが、セッターを定義できるかどうかはまだわかりません。クラス変数。

4

0 に答える 0