2017-10-03 22 views
0

クラスのフィールドを検証何私がしたいのは、検証するバリデーターを作成することです要求コードに基づくフィールド。例えばは条件付きで、私はそう</p> <p>クラス</p> <ul> <li>要求コードの列挙型</li> <li>名</li> <li>アドレス</li> <li>電話</li> </ul> <p>のようなフィールドを持つクラスを持っている

要求コードは== N 検証名は 他のフィールドがnull

リクエストコードすることができヌル

をではありません== NAP 検証名、住所、およびフィールド

がありますとにかく、列挙型ごとに検証するフィールドのリストを定義することができますので、バリデーターはそれらのフィールドのみをチェックします。どのように私はこれをPythonで達成するでしょうか?

答えて

1

バリデータの実装に強く依存しますが、一般的には、検証するフィールドのリストを保存することができます。

fields = { 
'N': ['name'], 
'NAP': ['name', 'address', 'phone'] 
} 

そしてバリデータ内の各フィールドを取得:あり、これを達成するために非常に多くの方法は、例えば、ある

for field in fields['NAP']: 
    value = getattr(your_object, field) 
    # validation logic ... 

をしかし、オブジェクトを検証するために、より柔軟な方法がたくさんあることに注意してください

+0

ahhありがとうございます。getattr()関数は、私が見逃していたキーパーツです! – Aman

関連する問題

 関連する問題