在命令行中将函数名称作为其多个参数传递为参数

时间:2020-09-12 02:20:41

标签: python-3.x command-line-arguments

我有3个函数来计算第N个斐波那契数。我想从命令行调用传递多个参数的函数。

输入:python3 a1.py纤维5 10 15 20

示例输出:5:5 10:55 15:61 20:6765

我尝试了以下代码:

df4 <- reactive({
      df4 <- df %>% subset(empID %in% df2()$empID) %>% select(empID, empAge, empSalary)
    })

1 个答案:

答案 0 :(得分:0)

您在这里有两个问题。第一种是通过名称调用函数。第二是准备其论点。要按名称调用 local 函数,请通过本地标识符的字典查找对该函数的引用:

locals()[argv[1]](*argv[2:])

但是,sys.argv由字符串组成,您的函数需要数字。字符串应转换为数字:

locals()[argv[1]](*map(int, argv[2:]))

到目前为止,太好了。但是,如果某些参数必须为数字,而某些参数必须为字符串,则情况将变得更加复杂。希望您的问题不会走那么远。

相关问题