繁体   English   中英

用python中的变量替换链接方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM