我try 使用Ctype将C代码片段转换为Python,但不起作用.C代码如下:

struct A
{
    struct B
    {
        // Empty
    };

    struct C
    {
        B b;
    };
};

我的Python代码是:

from ctypes import Structure

class A(Structure):
    class B(Structure):
        _fields_ = []

    class C(Structure):
        _fields_ = [("b", A.B)]   # Error: Unresolved reference 'A'

我做错了什么?

推荐答案

在Python中,在定义了整个类之后,类被绑定到其名称.A在定义期间不存在.ctypes Structures and unions展示了如何构建嵌套 struct .每个类都被单独定义为外部类,它的Structure._fields_属性使一个类从属于另一个类.

from ctypes import Structure

class B(Structure):
    _fields_ = []

class C(Structure):
    _fields_ = [("b", B)]

class A(Structure):
    _fields_ = [("B", B), ("C", C)]

Python相关问答推荐

Google Drive API获取文件计量数据

指示组内的rejected_time是否在creation_timestamp后5分钟内

如何使用上下文管理器创建类的实例?

如何比较numPy数组中的两个图像以获取它们不同的像素

滚动和,句号来自Pandas列

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

try 将一行连接到Tensorflow中的矩阵

driver. find_element无法通过class_name找到元素'""

如何在FastAPI中为我上传的json文件提供索引ID?

通过ManyToMany字段与Through在Django Admin中过滤

LocaleError:模块keras._' tf_keras. keras没有属性__internal_'''

以逻辑方式获取自己的pyproject.toml依赖项

为什么调用函数的值和次数不同,递归在代码中是如何工作的?

在用于Python的Bokeh包中设置按钮的样式

在极点中读取、扫描和接收有什么不同?

按条件添加小计列

修改.pdb文件中的值并另存为新的

如何将列表从a迭代到z-以抓取数据并将其转换为DataFrame?

在聚合中使用python-polars时如何计算模式

将数据从一个单元格保存到Jupyter笔记本中的下一个单元格