在Python中将对象属性作为方法的参数动态传递
我所处的环境中有一个动态对象作为参数和不同的类进行实例化。我已经设法将类加载到字典中,因此我可以实例化通过命令行作为字符串传递的任何类,但我没有弄清楚如何将任何对象“解包”到参数中。例如,我的矢量器类的构造函数接收以下参数:在Python中将对象属性作为方法的参数动态传递,python,python-3.x,Python,Python 3.x,我所处的环境中有一个动态对象作为参数和不同的类进行实例化。我已经设法将类加载到字典中,因此我可以实例化通过命令行作为字符串传递的任何类,但我没有弄清楚如何将任何对象“解包”到参数中。例如,我的矢量器类的构造函数接收以下参数: Vectorizer(encoding=encoding, use_idf=True, norm='l2') 因此,每当用户指示必须实例化此类时,我也会收到一个具有以下示例属性的对象: params = { "encoding":"utf8", "use_idf"=Tru
Vectorizer(encoding=encoding, use_idf=True, norm='l2')
因此,每当用户指示必须实例化此类时,我也会收到一个具有以下示例属性的对象:
params = { "encoding":"utf8", "use_idf"=True, "norm"="l2"}
但我不能像这样实例化矢量器:
Vectorizer(params)
我知道一个可能的解决方案是在所有现有类中进行重构,并接收一个包含所有properies的唯一param,但我确实希望避免这种情况,因此我可以保留当前的描述性构造函数
那么,您知道如何将params对象作为必需的参数传递吗
提前感谢,语法是:
Vectorizer(**params)
这称为字典解包,是。语法为:
Vectorizer(**params)
这被称为字典解包,是。看,我发誓我在询问之前试过了,但在控制台中没有工作。但我又试了一次,这次是在剧本上,成功了。谢谢感谢您指出概念和文档!!我真的很想知道怎么打电话给你我发誓我在问之前试过了,但在控制台里没用。但我又试了一次,这次是在剧本上,成功了。谢谢感谢您指出概念和文档!!我真的很想知道怎么称呼它