gpt4 book ai didi

python - 使用 boost::python::make_function 设置 __name__ 属性

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:00 25 4
gpt4 key购买 nike

在使用 make_function 创建一个 python 对象后,我需要访问它中的函数名称。

我试过这个:

void foo() {}
boost::python::object function = boost::python::make_function(foo);

// I got "unnamed Boost.Python function"
std::string name = boost::python::extract<std::string>(function.attr("__name__"));

// I got "attribute '__name__' of 'Boost.Python.function'"
function.attr("__name__") = "foo";

是否可以使用 make_function 设置“__name__”属性?

最佳答案

我通常只是用我想要的任何属性创建一个真正的 Python 函数,并让它调用一个我用 C++ 实现的内部函数(以 _ 开头以指示它不是公共(public)的)。

然后你可以做任何你想做的事,help(foo) 和类似的东西看起来会更熟悉,因为你可见的函数名只是一个普通的 Python 函数。

关于python - 使用 boost::python::make_function 设置 __name__ 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59050870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com