写在前面的话:由于python是两天速成,并没有系统学习这门语言的设计思想、解释器运行原理,所以总是会踩到各式各样的坑。

如题,got multiple values for argument,可能的原因1:

参数列表包含:“name”, "import"这种关键字。

参数列表与预期不一致。

例如:
在做一些训练任务时候,为了快速调整配置出不同情况下的实验任务。我会在任务的根目录写一个config.py。这时候。
preprocess
有一些预处理类的函数会被以配置的形式出现在config.py。这样在config.py里就可以方便地切换预处理、编码函数、运行调试地平台兼容等。如下:
config.py
本着一切皆对象的原则,函数名以成员变量的形式传给了config的成员,然而这么写并不对。(如下图红色画出来的地方)
函数地错误写法
因为配置文件的config.XXX还有个隐藏的传参。所以实际传参时候,调用阶段参数列表会多一个参数。(通过*args可以看到)所以会导致“got multiple values for argument”问题。所以正确的写法应该是:
@property
def XXXX(self):的方式去配置config里的函数对象。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐