2012-06-01 63 views
0

我正在制作一种语言,每次有人想访问一个变量时,它都带有一个$符号。但是,在每一个函数中我都必须有一个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>" 

正如我不断加入到这个功能,如果公司将成倍增加,而且几乎每一个功能,可以采取的变量,所以每一个功能都吨,如果的。基本上,我想是这样的:

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>" 
+0

我甚至不知道python,但不能使用循环遍历命令参数吗? – jahroy

+0

不太清楚你想要什么,但它看起来像递归。你可以在Python中声明递归函数。 – heltonbiker

+1

这确实很痛苦!幸运的是,这是一个很好理解的过程。你首先需要在这里做的事是标记你的输入。 –

回答

6

看起来好像您的需求已经变得十分复杂,需要建立一个parser