从两个位置之一选择数据的python方法是什么?



我正在对我从客户端应用程序(此代码所在的地方)调用的不同应用程序中的api端点进行向后不兼容的更改。我需要在一段时间内支持它处理前一种情况(数据位于"分类账"级别)和新情况(数据位于"配置文件"分类账)。

下面的代码可以从任何一个地方抓取它,但我有一个唠叨的感觉,必须有一个更python的方式来做到这一点。什么好主意吗?

class Profile(object):
    @property
        def account_owner(self):
            owner_data_from_ledger = self.account.ledger.data.get('owner', None)
            owner_data_from_profile = self.data.get('owner', None)
            owner_data = owner_data_from_ledger if owner_data_from_ledger else owner_data_from_profile
            if owner_data:
                return Human(owner_data)
            return None

代替

owner_data = owner_data_from_ledger if owner_data_from_ledger else owner_data_from_profile

你可以这样写,这是等价的:

owner_data = owner_data_from_ledger or owner_data_from_profile

也可以缩短整段:

owner_data_ = self.account.ledger.data.get('owner',
                  self.data.get('owner', None))

您也可以省略上面末尾的None,因为这是该参数的默认值。

相关内容

  • 没有找到相关文章

最新更新