[英]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.