Python类初始化报错unexpected keyword argument 'zz'怎么解决
你贴出的代码片段本身参数定义完全匹配,不存在语法错误,报错属于运行时加载的类版本和预期不一致导致的,按以下顺序排查即可:
排查方向
1. 类定义未更新加载
这是最常见的触发原因:你修改inverse_model类新增zz参数前,运行环境已经加载过旧版本的类定义,新增参数后没有重新加载最新的类代码,调用时用的还是不带zz参数的旧类。
解决方式:
- 若使用Jupyter/Colab等Notebook环境,直接重启内核,按顺序重新运行所有代码块即可
- 若使用本地脚本运行,确认
inverse_model类的定义代码位置在get_models函数调用代码的前面,修改类代码后重新运行整个脚本
2. 同名类导包冲突
如果你是从其他.py文件中导入inverse_model类,大概率是你导入了其他文件/库中同名的类,该类的__init__方法没有zz参数。
你可以在实例化inverse_model之前加入以下代码,确认当前加载的类参数是否符合预期:
import inspect # 打印inverse_model类构造方法的参数列表 print(inspect.signature(inverse_model.__init__))
如果输出结果中没有zz参数,即可确认是类导入错误,调整导包路径指向你自己写的类文件即可。
内容的提问来源于stack exchange,提问作者sal abb
相关产品推荐
相关产品推荐

