如何在boost.python中指定命名参数的值?

yel*_*elo 6 boost-python

我想将用python编写的函数嵌入到c ++代码中.
我的python代码是:test.py

def func(x=None, y=None, z=None):  
  print x,y,z  
Run Code Online (Sandbox Code Playgroud)

我的c ++代码是:

module = import("test");  
namespace = module.attr("__dict__");  

//then i want to know how to pass value 'y' only.  
module.attr("func")("y=1") // is that right?
Run Code Online (Sandbox Code Playgroud)

eud*_*xos 0

理论上的答案(没有时间自己尝试:-|):

boost::python::dict kw;
kw["y"]=1;
module.attr("func")(**kw); 
Run Code Online (Sandbox Code Playgroud)

  • PS 我在 boost::python 中发现 `*` 和 `**` 的功劳归功于 http://stackoverflow.com/a/6526185/761090。 (3认同)