Boost.Python:对对象的弱引用?
有没有办法获得Python对象的弱引用?使用 boost::python::object 您可以获得强/共享引用,因此只要 C++ 或 Python 持有对该对象的引用,它就不会被删除。我只希望 Python 持有对对象的强引用,而 C++ 持有弱引用。这可能吗?
Is there a way to get a weak reference to a Python object? With boost::python::object you get a strong/shared reference so as long as either C++ or Python holds a reference to that object, it will not get deleted. I want only Python to hold a strong reference to an object, and C++ a weak one. Is that possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为此,您需要进入 CPython API。使用
weakrefobject.h
中的PyWeakReference
类型。标头公开了一个类似于weakref
模块的 API - 请参阅文档。You need to go into the CPython API for that. Use
PyWeakReference
type fromweakrefobject.h
. The header exposes an API that's similar toweakref
module — see the docs.