[后一天]我想出来了 - 我甚至不知道要问什么问题。
解决方案是在解析c和'h文件时,用我构建的结构类的字典扩展用户模块的golbals()字典。
只需要globals().update(Structures.struct_dict)
就可以实例化我的派生类而无需跳过篮球。
感谢您的帮助(无论是在这里发表评论还是通过电子邮件发送),它确实让我顺利进入。
原始问题在下面
我是Python新手(以及堆栈溢出),我正在努力解决对象的范围问题。
我正在制作一个自动测试框架,通过USB连接到某台机器,然后发出命令,读取机器流传输的变量和数据并对其做出反应。
为了便于编写脚本,我编写了一个C / C ++预处理器,它可以为机器的代码和生成的映射文件提供所有C源代码,以便测试人员可以使用#define和#enums以及查询变量。 C中的名字。
所有这一切都很好但是非常有用我需要能够为我在源代码中找到的每种类型的结构生成一个类,这样当我的测试代码读取原始数据并返回一个bytearray时,用户可以做
myStruct = SomeStructClass(received_bytearray)
process(myStruct.structure_member_name_from_C_source)
我完成了解析,我可以生成类,但我最终得到的{name:class}
字典非常笨重。
我最终导入字典并要求编写测试脚本的用户做出奇怪的事情,例如:
from Structures import struct_dict
C_struct_name = struct_dict["C_struct_name"]
myStruct = C_struct_name(initial_data)
所以这是我的问题:
如何通过我的Structures模块进行简单导入来定义我在导入脚本的全局范围内在Structures中创建的新结构?
换句话说,我可以自动化上一段代码片段的第二行吗?
提前谢谢你!