3

以下に示すように始まるクラス定義があります。

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 が発生します。同じコードがサーバー側で役立つため、バリデーションはそのままにしておきたいと思います。

これを処理する正しい方法は何ですか?

4

1 に答える 1