使用Z3Py

时间:2016-05-13 03:49:05

标签: python-3.x z3 z3py

使用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,如果这是相关的)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这个问题与variadic functions in Python有关。

  

您可以使用相同的“*”语法将该函数应用于现有参数列表:

因此,像这样的东西应工作:

x