#python #python-3.x
#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:
Я думаю, вам нужно eval
здесь вместо этого, если вам нужно возвращаемое значение, поскольку я считаю, что exec
это чисто для выполнения побочных эффектов.
Хотя ни в том, ни в другом нет необходимости. Вы можете получить доступ к атрибуту объекта по имени с помощью getattr
:
c = getattr(sf, table).describe()