测试python对象是否有效
我正在使用Cython包装Python的c库。 我在C代码中有指向可调用Python对象的指针,以便稍后从C代码中调用它们。测试python对象是否有效,python,c,cython,Python,C,Cython,我正在使用Cython包装Python的c库。 我在C代码中有指向可调用Python对象的指针,以便稍后从C代码中调用它们。 如果我只有地址,如何确保回调不会被垃圾收集或删除。只需增加你持有的对象-这确保它不会消失!一旦你完成了它,一定要记得去DECREFobj——而且,详细信息请参见- 只需增加你手中的物体,这可以确保它不会消失!一旦你完成了它,一定要记得去DECREFobj——而且,详细信息请参见- 我知道如何防止gc收集。我通常把它放在列表、Python或cython端,问题是如何测试给定
如果我只有地址,如何确保回调不会被垃圾收集或删除。只需增加你持有的对象-这确保它不会消失!一旦你完成了它,一定要记得去DECREFobj——而且,详细信息请参见- 只需增加你手中的物体,这可以确保它不会消失!一旦你完成了它,一定要记得去DECREFobj——而且,详细信息请参见- 我知道如何防止gc收集。我通常把它放在列表、Python或cython端,问题是如何测试给定地址的有效性。@AlexV.,答案是,不可能。如果您选择不保留该对象,它可能已被释放,因此该地址处的内存现在可能是垃圾—无法确保它是垃圾或其他完全无关对象的一部分。如果你在意的话,抓住这个对象——内存是可替换的,除了一个地址之外什么也没有,也永远不会!,有一种方法可以确定这是一个PyObj的地址,其他人好心地为我保留了这个地址,因为我不会被打扰-我知道如何防止gc收集。我通常把它放在列表、Python或cython端,问题是如何测试给定地址的有效性。@AlexV.,答案是,不可能。如果您选择不保留该对象,它可能已被释放,因此该地址处的内存现在可能是垃圾—无法确保它是垃圾或其他完全无关对象的一部分。如果你在意的话,抓住这个对象——内存是可替换的,除了一个地址之外什么也没有,也永远不会!,有一种方法可以确定这是一个PyObj的地址,其他人好心地为我保留了这个地址,因为我不会被打扰-