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

问题描述

我有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)
    })

解决方法

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

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

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

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

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