访问对象内部结构中的指针

时间:2009-08-07 09:25:04

标签: python pointers internals

我正在使用pyOpenSSL接口到OpenSSL库,但它缺少我需要的一些功能,我不能或不想修改它来支持这些方法(出于各种原因)。

所以我想要实现的是检索OpenSSL对象指针。之后,我将能够通过ctypes调用缺少的函数。这样做的最佳方法是什么?

我已经发现我可以使用id()来获取指向pyOpenSSL对象的指针。如何使用它来访问ssl变量。

来自pyOpenSSL / connections.h:

  typedef struct {
      PyObject_HEAD
      SSL                 *ssl;
      ssl_ContextObj      *context;
      PyObject            *socket;
      PyThreadState       *tstate;
      PyObject            *app_data;
  } ssl_ConnectionObj;

1 个答案:

答案 0 :(得分:3)

指针在Python中并没有多大意义,因为你无法对它们做任何事情。它们只是一个整数。您已经注意到,您可以使用id方法获取对象的地址。但这就是它的地址。它不是指针,所以你不能用它做任何事情。

你也可以这样看:Python中的所有内容都是指针。您对pyOpenSSL对象的变量是指针。但它是指向pyOpenSSL对象的指针,而不是指向连接结构的指针。您不可能直接访问该结构。

所以你必须告诉我们你想做什么。也许有另一种解决方案。