【发布时间】:2017-09-27 23:20:04
【问题描述】:
我正在用 Python 编写自己的小型命令行界面。其中一个命令是“导出”,它基本上创建了一个变量。例如:
> export NUM=15
现在,NUM 将等于“15”。如果我在 CLI 中将“NUM”与任何其他命令一起使用,则它等同于数字“15”,例如我有另一个将十进制转换为十六进制的命令“十六进制”:
> hex NUM
输出应为“F”,但程序无法识别 NUM=15。我在函数之外声明了我的变量字典。我不会发布整个CLI.py,但这里是导出功能。基本上,我需要在变量字典中分配key=value。
def CommandExport(args):
if (len(args) == 0):
print(variables)
else:
for line in args:
args = line.split('=')
ENV = args[0]
value = args[1]
if (int(args[1]) == True):
value = int(value)
else:
value = str(value)
variables[ENV] = (value)
for ENV, value in variables.items():
vars()[ENV] = (value)
return(ENV)
return(value)
return(variables)
似乎它应该工作,但它没有。有什么想法吗?
【问题讨论】:
-
return(value)和return(variables)永远不会被执行,因为函数将在第一次调用后返回,return(ENV)。相反,return ENV, value, variables也不需要括号。 -
@DavidG 即使这样也不正确,因为这些返回语句位于 for 循环中,因此它将在第一次迭代后返回。不过,我认为 OP 实际上根本不需要返回。
标签: python variables dictionary