将命令行参数作为默认函数参数

时间:2016-01-05 09:46:26

标签: python python-2.7 default-arguments

我有一个正在运行的脚本(我写了一个模块包),在某些部分,某个脚本使用命令行参数执行另一个脚本。我希望其他脚本(其他人不会,但其他人可以修改并且可由用户查看)自动将sys.argv[1]转移到某个功能,例如{{1} ,有一些用户在调用时发送的参数 - 但我不希望用户知道额外的参数并需要自己发送(换句话说,我希望foo()自动发送到sys.argv[1])。

这可能吗?

示例:

foo()

1 个答案:

答案 0 :(得分:2)

你所描述的应该有用。在这里它被煮熟了,希望它有所帮助。

my_script.py

import subprocess
subprocess.check_call(["python", "user_script.py", "c"])

user_script.py

import my_module
my_module.my_func('a', 'b')

my_module.py

import sys
def my_func(arg1, arg2, arg3=sys.argv[1]):
    print arg1, arg2, arg3

然后,python my_script.py将输出a b c