在Python中,我試圖創建一個可以接受一個或多個參數的函數。爲簡單起見,讓我們說我想要做的是打印所傳遞Python:接受多個參數
def print_all(**arguments**):
print(arg1, arg2, ..., argN)
所以print_all("A", "B")
將輸出AB
的所有參數的函數。
傳遞的參數個數可以是1個或多個字符串。
這樣做的最好方法是什麼?
在Python中,我試圖創建一個可以接受一個或多個參數的函數。爲簡單起見,讓我們說我想要做的是打印所傳遞Python:接受多個參數
def print_all(**arguments**):
print(arg1, arg2, ..., argN)
所以print_all("A", "B")
將輸出AB
的所有參數的函數。
傳遞的參數個數可以是1個或多個字符串。
這樣做的最好方法是什麼?
您正在尋找*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?
簡單:
def print_all(*args):
for arg in args:
print(arg)
*指定參數和** 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}
使用圖示符(*
)來傳遞一個或更多個位置參數。然後將它們作爲函數中的字符串加入以打印結果。
def print_all(*args):
print("".join(str(a) for a in args))
>>> print_all(1, 2, 3, 'a')
123a
[看看這裏(https://stackoverflow.com/questions/3394835/args-and-kwargs)的 – bracco23
可能的複製(HTTPS [\ *指定參數和\ * \ * kwargs?] //stackoverflow.com/questions/3394835/args-and-kwargs) – Netwave