我被委托编写一个Python脚本,使用Win 32 DLL来执行一些功能。这个脚本需要从命令行接受参数,然后输出其他参数。
由于ctypes是我发现的最简单的将参数传递给Win 32 DLL方法的方式,因此我正在使用它,但我很幸运地从命令行中得到了一个固定数组的值,我通过以下方式解决了这个问题:
seed = (ctypes.c_ubyte * 12)(
ctypes.c_ubyte(int(sys.argv[3], 16)), ctypes.c_ubyte(int(sys.argv[4], 16)),
ctypes.c_ubyte(int(sys.argv[5], 16)), ctypes.c_ubyte(int(sys.argv[6], 16)),
ctypes.c_ubyte(int(sys.argv[7], 16)), ctypes.c_ubyte(int(sys.argv[8], 16)),
ctypes.c_ubyte(int(sys.argv[9], 16)), ctypes.c_ubyte(int(sys.argv[10], 16)),
ctypes.c_ubyte(int(sys.argv[11], 16)), ctypes.c_ubyte(int(sys.argv[12], 16)),
ctypes.c_ubyte(int(sys.argv[13], 16)), ctypes.c_ubyte(int(sys.argv[14], 16))
)
但这种方式并不是动态的,我曾尝试在数组初始化内部使用for循环进行数组初始化,但未成功。
我完全是新手,发现在Python中执行我认为其他语言中简单的任务相当困难(不是贬低这门语言,只是觉得对于这些任务而言不如其他语言直观易懂)。
那么,有没有一种方法可以简化初始化数组的过程,其中可以有可变数量的条目?
我已经搜索了很多资料,但是没有找到解决我的问题的方法。
欢迎各位给出积极或者消极的评论,我们都会从中汲取教训 :)