python可變參數總結


簡介:

在Python中,星號除了用於乘法數值運算和冪運算外,還有一種特殊的用法"在變量前添加單個星號或兩個星號",實現多參數的傳入或變量的拆解

 

1.參數傳遞

可變參數是用在函數的參數傳遞上的
單個星號代表這個位置接收任意多個非關鍵字參數並將其轉化成元組
而雙星號代表這個位置接收任意多個關鍵字參數並將其轉化成字典
*args的功能:------接收N個位置參數,轉換成元組tuple形式 **kwargs的功能------接收N個關鍵字參數,轉換成字典dict形式
1.1單個星號
1 def test(a,*args):
2     """a是一個普通傳入的參數
3     :args是一個非關鍵字星號參數
4     """
5     print('*args:{0}'.format(args))
6 a=[1,2,3]
7 test(4,*a)

結果:

1 *args:(1, 2, 3)
View Code

 


1.2雙星號
def test(a,**kwargs):
    """a是一個普通傳入的參數
    :args是一個關鍵字星號參數
    """
    print('*kwargs:{0}'.format(kwargs))
b={'name':'ganin','age':18}
test(1,**b)

運行結果

*kwargs:{'name': 'ganin', 'age': 18}

 


2.變量拆分
2.1*的變量拆分

def test(*args):
    """
    :args是一個非關鍵字星號參數
    """
    print(args[1])

a=[1,2,3]
#test(a)#IndexError: tuple index out of range報錯,沒有使用*的直接把所有的轉為元組
test(*a)#2能夠將這個變量拆分成單個元素

注意:*是無法拆分字典的
b={'name':'ganin','age':18}
test(*b)
#age
View Code

 

2.2**的變量拆分

def test(**kwargs):
    """
    :kwargs
    """
    print(kwargs)


b={'name':'ganin','age':18}
test(**b)
#{'name': 'ganin', 'age': 18}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM