在Python中,我试图创建一个可以接受一个或多个参数的函数。为简单起见,我想说我想创建一个打印传递的所有参数的函数
def print_all(**arguments**):
print(arg1, arg2, ..., argN)
所以print_all("A", "B")
会输出AB
。
传递的参数数量可以是1个或更多字符串。
这样做的最佳方式是什么?
答案 0 :(得分:2)
* 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}
<强> For detail 强>
答案 1 :(得分:0)
您正在寻找*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?
答案 2 :(得分:0)
简单地说:
def print_all(*args):
for arg in args:
print(arg)
答案 3 :(得分:0)
使用splat运算符(*
)传递一个或多个位置参数。然后在函数中将它们作为字符串连接起来以打印结果。
def print_all(*args):
print("".join(str(a) for a in args))
>>> print_all(1, 2, 3, 'a')
123a