【发布时间】:2012-06-01 02:21:00
【问题描述】:
我正在制作一种语言,每次有人想要访问一个变量时,它都带有一个 $ 符号。但是,在每个函数上我都必须有一个 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>"
【问题讨论】:
-
我连python都不知道,但是你不能用循环来遍历命令参数吗?
-
不太确定你想要什么,但它看起来像递归。您可以在 Python 中声明递归函数。
-
这确实很痛苦!幸运的是,这是一个很好理解的过程。您首先需要在这里做的事情是标记您的输入。
-
一个小建议:使用
elif:而不是`else: if: -
你为什么不用
len(cmd)而不是cmd.__len__()?
标签: python function syntax built-in