如果是替换嵌套?

时间:2012-06-01 02:21:00

标签: python function syntax built-in

我正在制作一种语言,每当一个人想要访问一个变量时,它都带有$符号。但是,在每个函数上我必须有一个if,看看它的第一个字母是否为$,并且每次传递参数时,对于每个参数我都必须这样做。它变得混乱。我想不嵌套if,但有它所以我可以轻松地应用一个函数,并访问它。这有点难以解释,但我会用一些代码来解释。

def varcmd(cmd, variables):
    if cmd.__len__() < 4:
        print "Too little arguments! str <var> = <string>"
    else:
        if cmd[2] == "=":
            if cmd[3][:1] == "$":
                variables[cmd[1]] = variables[cmd[3][1:]]
            else:
                variables[cmd[1]] = cmd[3]
        else:
            print "Incorrect syntax! str <var> = <string>"

当我不断添加到这个函数时,if会以指数方式增加,实际上每个函数都可以获取变量,所以每个函数都会有大量的if。基本上,我想要这样的东西:

def varcmd(cmd, variables):
    if cmd.__len__() < 4:
        print "Too little arguments! str <var> = <string>"
    else:
        if cmd[2] == "=":
            variables[cmd[1]] = auto_convert_if_var.cmd[3][1:]
        else:
            print "Incorrect syntax! str <var> = <string>"

1 个答案:

答案 0 :(得分:6)

看起来您的需求已变得足够复杂,需要构建parser