首页 > 解决方案 > 如何将属性字符串放入函数中

问题描述

我需要 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)()

标签: pythonfunctionattributesccxt

解决方案


您可以尝试使用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()

推荐阅读