在python中自动生成代码 - python

我需要从python调用C dll中的函数。所以我需要写格式的函数

def funcA(self):
    ans = ctypes.uint64()
    self.driver.getA(ctypes.byref(ans))
    return ans

现在我必须写相同的代码大约30次,每次唯一的区别是调用的函数的名称
funcA,funcB,funcC以及类似的dll函数getA,getB,getC
以及返回值的类型可以变化

通常我只想听一听

funcs = { 'A':'uint64', 'B':'bool'}

并自动生成functins

funcA和funcB,除了类型和变量名称外,其结构与顶部显示的结构几乎相同。
我猜想会有一些图书馆。

python大神给出的解决方案

为什么要使用字符串而不是类型本身?

funcs = { 'A':ctypes.uint64, 'B':bool }

然后:

def make_func(name, ctype):
    def func(self):
        ans = ctype()
        getattr(self.driver, 'get'+name)(ctypes.byref(ans))
        return ans
   func.__name__ = 'func'+name
   return func

for a, b in funcs.items():
    globals()['func'+a] = make_func(a, b)

或抛弃dict和for循环并执行以下操作:

funcA = make_func('A', ctypes.uint64)
funcB = make_func('B', bool)