我有一个C ++类,例如:
class Foo {
public:
Foo(int param1 = 0, int param2 = 1);
}
我想在python中使用关键字参数调用它,如下所示:
foo = Foo(arg1 = 1)
要么
foo = Foo(arg2 = 5)
我不知道如何通过boost :: python重命名构造函数中的参数,有人可以帮助我吗?先感谢您
要使用自定义名称和自定义默认值定义构造函数的Python签名,请按以下步骤导出类:
boost::python::class_<Foo>(
"Foo",
boost::python::init<int, int>(
(boost::python::arg("self"), boost::python::arg("arg1")=0, boost::python::arg("arg2")=1)
)
);
现在,您可以使用Python执行以下操作:
foo = Foo() # arg1 is 0, arg2 is 1
foo = Foo(1, 5) # arg1 is 1, arg2 is 5
foo = Foo(1) # arg1 is 1, arg2 is 1
foo = Foo(arg1=1) # arg1 is 1, arg2 is 1
foo = Foo(arg2=5) # arg1 is 0, arg2 is 5
注意:您不必声明self
参数,但是可以改善构造函数的文档字符串:
Foo.__init__( (object)self [, (int)arg1=0 [, (int)arg2=1]]) -> None
如果您使用文档生成器(例如Sphinx等),这很有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句