如何将属性的字符串放到函数中

How to put string for attribute to function

我需要有关 Python 中函数属性的帮助。 我有这样的数据:exch1 = data['Info']['Exchange1'],例如 poloniex。 我需要得到 exch1_object,它必须看起来像这样 ccxt.poloniex(),但是当我尝试这样做时,我得到了错误:

AttributeError: module 'ccxt' has no attribute 'str'
import ccxt
exch1 = data['Info']['Exchange1']
exch2 = data['Info']['Exchange2']
exch1_object = exch1.lower()
exch1_object = ccxt.str(exch1_object)()

您可以尝试使用 getattr():

# 'exch1_object' should be a string
func = getattr(ccxt, exch1_object)
exch1_object = func()

这将从模块 ccxt 中获取函数,该函数的名称当前位于变量 exch1_object 中(应该是一个字符串)。

这也可以缩短为:

exch1_object = getattr(ccxt, exch1_object)()

您必须决定哪个对您的案例更清晰易读。


因此,例如,这些行:

exch1_object = 'poloniex'
exch1_object = getattr(ccxt, exch1_object)()

将产生与以下相同的结果:

exch1_object = ccxt.poloniex()