[英]replace a chained method with a variable in python
我有一个来自simple_salesforce
包的函数,
sf = Salesforce(username, pass, key)
为了更新salesforce数据库中的对象,可通过以下方式调用sf:
sf.bulk.object.update(data)
例如, account
是salesforce中的本机客户帐户对象,因此您需要提供data
来更新帐户,如下所示:
sf.bulk.account.update(data)
我想知道python中是否有一种方法可以将链的特定部分设置为参数。
我想做什么:
def update_sf(object, data):
sf.bulk.object.update(data)
这样我可以打电话给:
update_sf('account', data)
我可以想到的唯一另一种方法是创建一个包含实例中对象的数十个值的字典
{'account':sf.bulk.account.update(),
'contact':sf.bulk.contact.update()}
有没有办法做到这一点?
您可以使用内置函数getattr
来获取所需的实体:
>>> getattr(sf.bulk, object).update(data)
为了也能够动态选择操作(插入,更新,删除),您可以链接getattr
>>> getattr(getattr(sf.bulk, object),operation)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.