如何将属性的字符串放到函数中
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()
我需要有关 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()