我有一个功能:
def foo(a=0, b=0, c=0, val=0, someotherval=0):
print val + someotherval
此函数在文件bar.py
中调用。从控制台运行bar.py
时,我希望将参数作为字符串传递给函数:
>>python bar.py "val=3"
因此函数foo
将其解释为:
foo(val=3)
我试图使用exec
命令。在我的bar.py
文件中:
import sys
cmdlinearg = sys.argv[1] # capturing commandline argument
foo(exec(cmdlinearg))
但我有个语法错误。
我知道我可以只传递参数值本身,但是对于具有许多参数的函数,我不希望最终用户为不需要的参数输入0s:
>>python bar.py "0" "0" "0" "3"
有办法做到这一点吗?你知道吗
如果你不关心安全,你可以这样做
或者这个:
但是,如果您关心的是用户的易用性,那么也许您应该看看argparse。你知道吗
使用argparse解析命令行参数怎么样?你知道吗
示例-
然后你可以打电话得到结果,比如-
我宁愿用正确的方法来做这件事并使用argparse。你知道吗
您的命令行界面如下所示:
代码是这样的:
相关问题 更多 >
编程相关推荐