Pythonの無名クラス
FormWizardを使って入力確認画面を実装するというのをやりたくて、昔書いたエントリを見返してた。
FormWizardで確認画面を表示する - brainstorm
FormWizardで入力確認表示のときのformをダミーにするというもの
#forms.py class DummyFrom(forms.Form): pass class PersonForm(forms.ModelForm): class Meta: model = Person fields = ('name', 'age') #views.py FORM_LIST = [("new", PersonForm), ("confirm", DummyForm)] class RegisterWizard(SessionWizardView): form_list = FormList ...
こんな感じでconfirmステップではそれまでに入力したformのcleaned_dataを取得して画面に表示する。
DummyFormが空実装なので、無名関数でも大丈夫だと思って試してみた。
FORM_LIST = [("new", PersonForm), ("confirm", type('DummyForm', (forms.Form,), {}))]
問題なく動く。
やらないけど。
無名クラスが大活躍するようなケースってどんなときだろうか