2016-05-12 15 views
0

boost::python::tupleオブジェクトから2番目の要素を削除しようとしています。 2番目の要素を削除したいタプルは、Pythonの関数呼び出しに渡される引数のリストです。boost :: python :: tupleへの要素の追加

このように私は要素を削除するには:

BPY::object CallMethod(BPY::tuple args, BPY::dict kwargs) 
{ 
    ... 

    // args is my original tuple from which I want to remove the second element 

    boost::python::api::object_slice firstSlice = args.slice(0, 1); 
    boost::python::tuple newArgs = boost::python::extract<boost::python::tuple>(firstSlice); 

    if(boost::python::len(args) > 2) 
    { 
     boost::python::api::object_slice secondSlice = args.slice(2, boost::python::len(args)); 
     boost::python::tuple secondSliceArgs = boost::python::extract<boost::python::tuple>(secondSlice); 

     newArgs = boost::python::make_tuple(newArgs, secondSliceArgs); 
    } 

    args = newArgs; 

    ... 
} 

私は、問題はboost::python::tupleの要素を追加していないということだと思い それが要素として第一および第二のスライスと新しいタプルを作成。

どうすればこの問題を解決できますか?

+0

愚かな質問です。私はちょうどこれ(2つのタプルを連結する)のようにする必要がありました: 'newArgs = BPY :: extract (newArgs + secondSliceArgs);' – zeb

答えて

0

tupleは、listとは異なり、Pythonでは不変のデータ構造です。

関連する問題