使用Z3Py,我正在尝试编写一个函数decl_func(fname, arity)
,它接受两个参数:fname
,要声明的函数的名称,以及arity
,其数量为参数,并返回整数相应的(未解释的)Z3函数。问题是arity
的值不能预先确定,因此函数体不能
return Function(fname, IntSort(), IntSort())
或
return Function(fname, IntSort(), IntSort(), IntSort())
就像一元函数或二元函数一样。这是我考虑过的一个粗略的解决方法:
exec('f = Function(\'%s\', %s)' % (fname, ('IntSort(), ' * arity + 'IntSort()')))
return f
但这不起作用,似乎是由于exec
处理变量声明的方式(我正在使用Python 3,如果这是相关的)。
有什么想法吗?
答案 0 :(得分:1)