我有一个带有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
这工作正常,紧凑,但有一个主要问题:我将获得数据库已损坏的信息,
但不是缺少哪个领域(可能只是其中之一,或更多,或全部!)
惯用法应该是
if self.foo is None:
self.isValid = False
return ErrorCode.CORRUPTED_DATABASE, "FOO IS MISSING" # could be a string, an enum value, whatever, I have the information
if self.bar is None:
self.isValid = False
return ErrorCode.CORRUPTED_DATABASE, "BAR IS MISSING"
if self.bip is None:
self.isValid = False
return ErrorCode.CORRUPTED_DATABASE, "BIP IS MISSING"
但这不是很漂亮,没有因素分解(所有我的’来自db’函数的init使用相同的模式……我不想繁殖我的
对于这种情况,行数为10).
这不是一个’100%python’的问题,但是我希望这句话能让我像老板一样处理这个问题(它的Python:通常会这样!)