在定義乙個方法的時候,星號的意思就是: 收集其餘位置的引數,如果不提供任何收集的元素給星號,就是乙個空元組。
下面看一下例子:
def
prints
(*arg):
print arg;
prints (1,2,3,4,5,6,7)
列印的結果是乙個元組: (1,2,3,4,5,6,7) , 也就是說該引數(arg) 將傳進來的所有引數放在了乙個元組中。
將方法變形看一看這個方法的好處:
def
prints
(*arg):
n = len(arg)
for i in xrange(n):
print arg[i];
prints (1,2,3,4,5,6,7)
列印的結果是:
1 2
3 4
5 6
7這表明當你的方法需要一些引數,但是你又不知道究竟會有多少的時候,使用*號作為可變引數列表,就可以在方法內對引數進行呼叫。
這裡將會引出**(兩個星號)的用法:收集其餘帶有關鍵字引數的,如果不提供任何收集的元素給**,就是乙個字典。
看一下例子:
def
prints
(**arg):
print arg
prints (a=1,b=2,c=3,d=4,e=5,f=6,g=7)
列印的結果是: ,也就是乙個字典,所以具體有什麼好處,可以在實踐中逐漸摸索。
下面主要說一下引數收集的逆過程,也就是方法定義中並沒有星號,但是在呼叫方法的時候攜帶了星號作用是什麼?
看個例子:
def
add(x,y):
print x+y
para = (1,2)
add(*para)
列印結果為: 3, 可見在呼叫引數的時候使用*號可以自動解包。
同理如果是兩個星號的話,就是帶有**號的字典,自動解包。
def
add(x,y):
print x+y
kkwd =
add(**kkwd)
列印結果為: 3, 可見在呼叫引數的時候使用*號可以自動解包。
(*) 星號的引數傳遞主要是在不知道引數多少的情況下可以準確的傳遞引數
Python 星號( )操作符的用法
在定義乙個方法的時候,星號的意思就是 收集其餘位置的引數,如果不提供任何收集的元素給星號,就是乙個空元組。下面看一下例子 def prints arg print arg prints 1,2,3,4,5,6,7 列印的結果是乙個元組 1,2,3,4,5,6,7 也就是說該引數 arg 將傳進來的所...
Python星號操作符的作用
def somefunc arg code goes here這樣,傳入的引數將會先被 打包 成為乙個元組,然後再當做引數傳入。def somefunc arg code goes here傳入的引數就會被放入乙個字典中再傳入。def somefunc a,b,c,starone,startwo p...
python 操作符 與 的用法
兩個乘號就是乘方,比如2 4,結果就是2的4次方,結果是16 乙個乘號 如果運算元是兩個數字,就是這兩個數字相乘,如2 4,結果為8 如果是字串 列表 元組與乙個整數n相乘,返回乙個其所有元素重複n次的同型別物件,比如 hello 3將返回字串 hellohellohello 如果是函式定義中引數前...