Nei*_*l G 2 python boost-python
我的C++库是用Python导入的,我需要调用InitGoogleLogging().我的C++库使用Boost.Python.
导入库时如何调用函数?
python中没有真正的"定义".放入.py模块中的任何代码都会在导入时执行.恰好在包文件中放置代码的大部分时间都是像class或def这样的"definiton"代码.实际上,该代码仍然会被执行,因此它只会创建您的类和函数定义.从模块中的根命名空间(缩进)调用函数将导致在加载模块后立即调用它.
只需将它们放入__init__.py即可.请参阅http://www.boost.org/doc/libs/1_45_0/libs/python/doc/tutorial/doc/html/python/techniques.html#python.extending_wrapped_objects_in_python,其中讨论了使用别名导出包,然后在init .py中压缩命名空间.
即(这将是一个名为foo的子目录中的__init__.py):
from _foo import *
InitGoogleLogging()
Run Code Online (Sandbox Code Playgroud)
另一种方法是直接从C++包装器模块调用它:
BOOST_PYTHON_MODULE(foo)
{
InitGoogleLogging();
class_<Foo>("Foo")
.def("bar", &bar)
;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1821 次 |
| 最近记录: |