我有一个程序,其中部分代码必须不断修改:
VAR = 'math.sin(x*y)*math.sin(x*y)'
while (x <= vfinal) and (y <= vfinal):
v1 = bm.verts.new((round(x,3),round(y,3),VAR))
x = x + precision
v2 = bm.verts.new((round(x,3),round(y,3),VAR))
y = y + precision
x = x - precision
v3 = bm.verts.new((round(x,3),round(y,3),VAR))
x = x + precision
v4 = bm.verts.new((round(x,3),round(y,3),VAR))
bm.faces.new((v1,v2,v4,v3))
y = y - precision
if (round(x,1) == vfinal):
y = y + precision
x = vinicial
因为math.sin(x*y)*math.sin(x*y)
出现了4次(可能在我展开程序时出现更多次),所以我想通过更改VAR
中存储的内容来轻松地更改程序
到目前为止,我尝试将VAR设置为字符串,这会产生一个错误,因为bm.verts.new
不接受字符串。还尝试删除VAR中的“”,使其成为一个数字,但这不会进一步给出所需的结果,因为x
和y
会不断变化。唯一有效的方法就是写4遍math.sin(x*y)math.sin(xy),但是很乏味,我也很懒
有什么办法可以做我想做的吗?如果没有,我该怎么办
与其尝试动态执行代码,不如将
VAR
设为函数:或者如果你喜欢香草的功能:
然后可以通过调用函数重用逻辑。例如:
相关问题 更多 >
编程相关推荐