我有一个带有Firebase数据库后端的Python应用程序。在
当我从数据库中检索数据时,我想检查这些值是否 可用(如果不可用,则意味着数据库已损坏,因为缺少强制字段)
我目前的实现如下:
self.foo = myDbRef.get('foo')
self.bar = myDbRef.get('bar')
self.bip = myDbRef.get('bip')
self.plop = myDbRef.get('plop')
if self.foo is None or self.bar is None or self.bip is None or self.plop is None:
self.isValid = False
return ErrorCode.CORRUPTED_DATABASE
这很好,很紧凑,但有一个主要问题:我会得到数据库损坏的信息, 但不是缺少什么字段(可能只是其中一个字段,或更多字段,或全部字段!)在
惯用的方法应该是
^{pr2}$但这不是很好,不是因式分解(我所有的'init from db'函数都使用相同的模式。。。我不想把我的 在这种情况下,行数为10)。在
这不是一个“100%python”的问题,但我希望语言能让我像老板一样处理这个问题(这是python:通常是这样!)在
我创建了一个类来包含一些我无法访问的功能。我还将ErrorCode作为一个hack,因为我的工具中没有定义ErrorCode,而且我不确定您希望如何将None名称与ErrorCode一起返回。在
构建名称和值的
dict
,检查dict是否不包含None值,如果包含,则返回哪些键:结果:
('ErrorCode.CORRUPTED_DATABASE', ['foo'])
使用函数和循环:
并以此方式使用:
^{pr2}$为了获得最大的收益,将它作为一个类的方法,您将把它混合到所有使用它的类中。这样它也可以设置
isValid
。在您可以将检查提取到生成器中,并将标志和
return
语句保留在外部。在这样做的好处是,如果有多个字段,则可以告诉您所有缺少的字段。在
相关问题 更多 >
编程相关推荐