1: getattr() 函数官方定义:
getattr
(object, name[, default])
返回对象命名属性的值。name 必须是字符串。如果该字符串是对象的属性之一,则返回该属性的值。例如, getattr(x, 'foobar')
等同于 x.foobar
。如果指定的属性不存在,且提供了 default 值,则返回它,否则触发 AttributeError
。
官方函数文档: https://docs.python.org/zh-cn/3.6/library/functions.html#getattr
代码示例:
class Example:
@classmethod def kline(cls, symbol, klinetype, params={}): # check_symbol(symbol) # 函数自定义验证函数 忽略 klinetype_dict = {'1h':'60min','1d':'1day'} klinetype = klinetype_dict[klinetype] func = cls().check_kline_symbol(symbol) # 这里是根据参数的类型,返回需要调用的函数方法 return getattr(cls(), func)(symbol, klinetype, params={})
# 检查kline symbols 属于哪一种 def check_kline_symbol(self,symbol): if '-' in symbol: return '_swap_kline' if 'CW' in symbol or 'NW' in symbol or 'CQ' in symbol: return '_futures_kline' if '_' in symbol and 'CW' not in symbol or 'NW' not in symbol or 'CQ' not in symbol: return '_spot_kline'
def _swap_kline(self, symbol, klinetype, params={}):
pass # 处理自己的逻辑
ExportClass = Example
if __name__ == '__main__': e = ExportClass() print(e.kline('XRP-USD', '1h')) # swap
说明: 自己编写代码过程中用到的知识点, 可能会减少一定的代码量,