python方法作为变量

时间:2019-03-14 00:43:06

标签: python python-3.x

Python(3.7)

我正在尝试编写一个简单的函数,该函数从Salesforce对象(表)返回元数据,其中表名是一个参数。在下面的示例中,Booking__c是一个对象(表)名称,它按预期返回collections.OrderedDict

from simple_salesforce import Salesforce
sf=Salesforce(username,password,organizationId)

table_info=sf.Booking__c.describe()

但是,我需要编写一个函数,以便可以将其重用于多个表。我尝试了exec(),但是它返回NoneType

def all_columns(table):
    c = exec("sf.table.describe()")
    return c

我知道不建议使用exec(),因此,如果有适当的方法可以实现这一目标,或者至少对exec有帮助,将不胜感激。

1 个答案:

答案 0 :(得分:2)

我认为如果需要返回值,则需要在这里使用eval,因为我相信exec纯粹是为了执行副作用。

虽然没有必要。您可以使用getattr通过名称访问对象的属性:

c = getattr(sf, table).describe()