我有一个类定义,如下所示。
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 实例化它时,会引发 TypeError,这可能是因为 isinstance 对什么是 dict 什么不是非常直接。我想保持验证不变,因为相同的代码在服务器端很有用。
处理这个问题的正确方法是什么?