Shiboken 模块¶
函数¶
类¶
详细描述¶
这个Python模块可用于访问与我们的绑定技术相关的内部信息。访问这些内部信息是必要的,例如:将PySide与提供Python脚本的基于Qt的程序(如Maya™)集成,或仅用于调试目的。
一些函数描述提到“基于Shiboken的对象”,这意味着使用Shiboken创建的任何Python类型的Python对象实例。
要导入模块:
from shiboken6 import Shiboken
- Shiboken.isValid(obj: object) bool¶
给定一个Python对象,如果可以在不抛出异常的情况下调用对象方法,则返回True。当底层的C++对象被销毁或无法访问时,Python包装器将变为无效。
- Parameters:
obj – 要验证的Python对象。
- Shiboken.wrapInstance(address: int, python_type: type) Shiboken.object¶
为在给定内存地址实例化的C++对象创建一个Python包装器 - 返回的对象类型将与用户给定的类型相同。
类型必须是Python类型。当返回的Python对象的引用计数为零时,C++对象不会被销毁。
如果地址无效或未指向给定类型的C++对象,则行为未定义。
- Parameters:
address (int) – C++ 对象的地址。
python_type (type) – 对应C++对象的Python类型。
- Shiboken.getCppPointer(obj: Shiboken.object) tuple[int, ...]¶
返回一个包含由给定对象包装的C++实例的内存地址的长整型元组。
- Parameters:
obj – Shiboken 对象。
- Shiboken.delete(obj: Shiboken.object)¶
删除由给定Python对象包装的C++对象。
- Parameters:
obj – Shiboken 对象。
- Shiboken.ownedByPython(obj: Shiboken.object) bool¶
给定一个Shiboken对象,如果Python负责删除底层的C++对象,则返回True,否则返回False。
如果对象不是基于Shiboken的对象,则会抛出TypeError。
- Parameters:
obj – Shiboken 对象。
- Shiboken.createdByPython(obj: Shiboken.object) bool¶
如果给定的Python对象是由Python创建的,则返回true。
- Parameters:
obj – Shiboken 对象。
- Shiboken.dump(obj: object) str¶
返回一个包含有关对象的实现定义信息的字符串。 此方法应仅由创建自己绑定的开发人员用于调试目的,因为不保证字符串格式在不同版本之间保持一致。
如果对象不是基于Shiboken的对象,则会打印一条消息。
- Parameters:
obj – Python 对象。
- Shiboken.disassembleFrame(label: str)¶
将当前执行的Python帧打印到标准输出并刷新。 反汇编由一些标签装饰。示例:
lambda: 42
在C++内部显示为
<label> BEGIN 1 0 LOAD_CONST 1 (42) 2 RETURN_VALUE <label> END
当你想在disassembleFrame函数处设置断点,并且你从C++中使用它时,你使用纯函数名称。
当你想从Python中使用它时,你可以将其插入到你的Python代码中,然后可能在SbkShibokenModule_disassembleFrame处设置一个断点,这是生成的包装器。
label 在 C++ 中是一个简单的字符串。在 Python 中,你可以使用任何对象;内部会调用 str 函数。
此方法应仅由开发人员用于调试目的。
- Parameters:
标签 – Python 字符串。
- Shiboken.dumpTypeGraph(file_name: str) bool¶
将libshiboken中存在的类型的继承图转储到
.dot文件中,以便与Graphviz一起使用。- Parameters:
file_name – 要写入图形的文件名。
- Shiboken.dumpWrapperMap()¶
将libshiboken中现有的包装器映射转储到标准错误。
- Shiboken.dumpConverters()¶
将libshiboken中现有的命名转换器映射转储到标准错误。