Python Lambda函数参数无效

2024-09-28 17:17:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建最终将要绘制的对象,并使用数据的api。 对于要绘制的对象属性,我使用lambda函数,以便它返回每个新对象所需的特定数据

Lambda函数通过api调用传递两个参数,第一个a,引用objects .name属性,工作正常。当我尝试引用引用objects .time属性的第二个lambda参数b时,我得到一个错误b is an invalid key argument for __new__()

default = 'USD'
asset1_input = 'ETH'
asset2_input = 'DAI'


class Asset:
    def __init__(self, name, time, allocate, perform):
        self.name = name
        self.time = time
        self.allocate = allocate
        self.perform = perform(name, time)[name][default]

perform = lambda a, b : cryptocompare.get_historical_price(a, 'USD', datetime.today() - timedelta(b=5))


asset1 = Asset(asset1_input, 'days', .2, perform)

print(asset1.perform) 

datetime预计数天或数周。如果我手动将其中一个放入,那么它工作正常。部分问题可能是datetime不需要字符串days,它只需要天,但是当我将天作为时间值输入时,我得到days undefined。正在考虑在lambda函数中使用if语句和for循环(if some input == 'days',使用for循环来迭代days值),但是其他堆栈帖子提到不能在lambda函数中使用for循环进行迭代


Tags: 对象lambda函数nameselfforinputdatetime