繁体   English   中英

Python:接受多个参数

[英]Python: Accept multiple arguments

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

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

因此print_all("A", "B")将输出AB

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

做这个的最好方式是什么?

* 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

对于列表和字典

>>> 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}

详情

您正在寻找*args的用法,它允许您将多个参数传递给函数而无需关心要传递的参数数量。

示例示例:

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

在这里,此函数返回传递给您的函数的参数的元组。

有关更多详细信息,请检查: **(双星)和*(星)对参数有何作用?

简单地说:

def print_all(*args):
    for arg in args:
        print(arg)

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

def print_all(*args):
    print("".join(str(a) for a in args))

>>> print_all(1, 2, 3, 'a')
123a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM