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

Python:接受多个参数

  •  1
  • Bijan  · 技术社区  · 8 年前

    在Python中,我试图创建一个可以接受1个或多个参数的函数。为了简单起见,假设我想制作一个函数,打印所有传递的参数

    def print_all(**arguments**):
        print(arg1, arg2, ..., argN)
    

    print_all("A", "B") 将输出 AB .

    传递的参数数可以是1个或多个字符串。

    最好的方法是什么?

    4 回复  |  直到 8 年前
        1
  •  2
  •   Kallz    8 年前

    *args和**kwargs 允许向函数传递任何数量的参数、位置(*)和关键字(**)

    >>> def test(*args):
    ...     for var in args:
    ...         print var
    ... 
    >>> 
    

    >>> test("a",1,"b",2)         
    a
    1
    b
    2
    
    >>> test(1,2,3)
    1
    2
    3
    

    列表(&P);字典

    >>> a = [1,2,3,4,5,6]
    >>> test(a)
    [1, 2, 3, 4, 5, 6]
    >>> b = {'a':1,'b':2,'c':3}
    >>> test(b)
    {'a': 1, 'c': 3, 'b': 2}
    

    For detail

        2
  •  0
  •   Julien    8 年前

    简单地说:

    def print_all(*args):
        for arg in args:
            print(arg)
    
        3
  •  0
  •   Alexander    8 年前

    * )传递一个或多个位置参数。然后将它们作为字符串连接到函数中以打印结果。

    def print_all(*args):
        print("".join(str(a) for a in args))
    
    >>> print_all(1, 2, 3, 'a')
    123a
    
        4
  •  0
  •   Moinuddin Quadri    8 年前

    您正在查找 *args 它允许您将多个参数传递给函数,而不需要考虑要传递的参数数量。

    示例:

    >>> def arg_funct(*args):
    ...     print args
    ...
    >>> arg_funct('A', 'B', 'C')
    ('A', 'B', 'C')
    >>> arg_funct('A')
    ('A',)
    

    这里,该函数返回传递给函数的参数元组。

    What does ** (double star) and * (star) do for parameters?