Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用变量Python替换代码_Python - Fatal编程技术网

用变量Python替换代码

用变量Python替换代码,python,Python,我有一个程序,其中部分代码必须不断修改: 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

我有一个程序,其中部分代码必须不断修改:

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
VAR='math.sin(x*y)*math.sin(x*y)'

(x而不是尝试动态执行代码,您可以将
VAR
设置为函数:

VAR = lambda x, y: math.sin(x * y) * math.sin(x * y)
def VAR(x, y):
    return math.sin(x * y) * math.sin(x * y)
或者,如果您喜欢普通功能:

VAR = lambda x, y: math.sin(x * y) * math.sin(x * y)
def VAR(x, y):
    return math.sin(x * y) * math.sin(x * y)
然后可以通过调用函数重用逻辑。例如:

v1 = bm.verts.new((round(x,3),round(y,3),VAR(x, y)))

您可以使
VAR
成为一个函数,而不是尝试动态执行代码:

VAR = lambda x, y: math.sin(x * y) * math.sin(x * y)
def VAR(x, y):
    return math.sin(x * y) * math.sin(x * y)
或者,如果您喜欢普通功能:

VAR = lambda x, y: math.sin(x * y) * math.sin(x * y)
def VAR(x, y):
    return math.sin(x * y) * math.sin(x * y)
然后可以通过调用函数重用逻辑。例如:

v1 = bm.verts.new((round(x,3),round(y,3),VAR(x, y)))

为什么不把它放在函数中,然后更改函数?为什么不把它放在函数中,然后更改函数?可能会建议一个符合PEP-8的名称,也许还有一个更长的表单定义。@是的,谢谢,我正在updating@CharlesDuffy是的,你可能是对的。我本想提出这个建议,但对莫迪犹豫不决对OP的代码进行详细解释,解释原因。我会更新。尝试过这样做,现在我得到TypeError:()缺少2个必需的位置参数:“x”和“y”@tacofisher抱歉,忘记将
x
y
传递给
VAR
。现在应该可以了。可能建议使用符合PEP-8的名称,也可能是更长的表单定义。@kindall是的,谢谢,我正在处理updating@CharlesDuffy是的,你可能是对的,我正要去苏G尽管如此,但在解释原因时对修改OP的代码犹豫不决。我会更新。尝试过这样做,现在我得到了TypeError:()缺少2个必需的位置参数:“x”和“y”@tacofisher抱歉,忘记将
x
y
传递到
VAR
。现在应该可以了。