代码之家  ›  专栏  ›  技术社区  ›  Toji

使用arg列表调用python callable

  •  1
  • Toji  · 技术社区  · 14 年前

    简单的问题:如何将参数的任意列表传递给可调用的python?

    假设我想从命令行调用函数,如下所示:

    my_script.py foo hello world
    

    使用以下脚本:

    import myfuncs
    f = getattr(myfuncs, sys.args[1])
    if f and callable(f):
        # This is the bit I don't know. I effectively want f(sys.args[2:])
    

    我肯定有办法,但我一定是忽略了。

    2 回复  |  直到 14 年前
        1
  •  6
  •   user395760user395760    14 年前

    你在找 sequence unpacking . 即。 f(*sys.argv[2:])

        2
  •  4
  •   Andrew Jaffe    14 年前

    是的,看看那部分 Unpacking argument lists 在文件里。

    为了你的特殊用途,可能是这样的

    def f(a, b, c): 
      print a, b, c
    
    stuff = ['f',2,3,4]
    
    f(*stuff[1:]) ### equivalent to f(2,3,4)