以下に示すように始まるクラス定義があります。
class Ace11():
def __init__(self, register_list):
"""
Parse and validate the list of dicts.
"""
self.required_keys = """
briefdescription defaultvalue flatname rnum rtype where
""".strip().split()
self.registers = register_list
## Validate
for d in self.registers:
if not isinstance(d, dict):
raise TypeError("{d} is not a dict.".format(**locals()))
for k in self.required_keys:
if not k in d.keys():
raise ValueError("Key {k} missing from {d}"
.format(**locals()))
オブジェクトの配列を含む var を使用してクライアント側でインスタンス化しようとすると、おそらく isinstance が dict とそうでないものについて非常にリテラルであるため、 TypeError が発生します。同じコードがサーバー側で役立つため、バリデーションはそのままにしておきたいと思います。
これを処理する正しい方法は何ですか?