2017-08-25 124 views
0

在Python中,我試圖創建一個可以接受一個或多個參數的函數。爲簡單起見,讓我們說我想要做的是打印所傳遞Python:接受多個參數

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

所以print_all("A", "B")將輸出AB的所有參數的函數。

傳遞的參數個數可以是1個或多個字符串。

這樣做的最好方法是什麼?

+0

[看看這裏(https://stackoverflow.com/questions/3394835/args-and-kwargs)的 – bracco23

+0

可能的複製(HTTPS [\ *指定參數和\ * \ * kwargs?] //stackoverflow.com/questions/3394835/args-and-kwargs) – Netwave

回答

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?

0

簡單:

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

*指定參數和** 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

0

使用圖示符(*)來傳遞一個或更多個位置參數。然後將它們作爲函數中的字符串加入以打印結果。

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

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