Python调用含5个入参的run_model函数能否用单参数加列表传参
问题解答
- 你尝试的
run_model(lr_model,[full_data])调用方式完全无法正常运行,和run_model的参数设计不匹配 - 错误本质:这种写法实际只会给函数传入2个参数,第一个是
lr_model,第二个是把整个full_data元组包裹起来的列表;但run_model需要接收5个独立的位置参数,既存在参数数量不足的问题,传入的列表类型对象也和预期的各数据集参数类型不符,运行时会直接抛出参数数量不匹配的报错。 - 符合需求的正确实现方式:Python原生支持序列类型的位置参数解包操作,只需要在打包好的元组前加
*运算符,就能把元组内的元素拆成独立的位置参数依次传入函数。 - 正确的调用代码为:
run_model(lr_model, *full_data) - 该写法的传参效果和原生常规调用完全等价:
*会把full_data内按顺序存储的4个数据集元素,依次填充到lr_model之后的参数位置,不会出现参数顺序错位。
内容的提问来源于stack exchange,提问作者unaied
相关产品推荐
相关产品推荐

