基于Python 中函數(shù)的 收集參數(shù) 機制
定義函數(shù)的時候,在參數(shù)前加了一個 * 號,函數(shù)可以接收零個或多個值作為參數(shù)。返回結果是一個元組。
傳遞零個參數(shù)時函數(shù)并不報錯,而是返回一個空元組。但以上這種方法也有局限性,它不能收集關鍵字參數(shù)。
對關鍵字參數(shù)進行收集的另一種 收集參數(shù) 機制:使用兩個星號 ( ** ) ,用法同上。最后返回一個以參數(shù)名為鍵、參數(shù)值為鍵值的字典。
* 和 ** 是可以一起使用的,返回特定的結果。
參數(shù)收集的用處之一是使我們編寫函數(shù)時不用頭疼將 N 多個參數(shù)都塞在一個括號里,既美觀又省事。用處之二便是:
* :可以將一系列值存放進一個元組變量里,可用該元組變量名加一個 * 號作為參數(shù)傳遞給一個正被調用的函數(shù),而后該函數(shù)就可以自由地對這些值進行一系列合法的操作。
** :同理,只不過變量存放的方式是字典。
def foo(*param):
print(param)
def foo_1(**param):
print(param)
def foo_2(*param1, **param2):
print(param1)
print(param2)
if __name__ == '__main__':
foo(1,2,3,4) # (1, 2, 3, 4)
foo_1(a = 1, b=2, c=3, d=4) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
foo_2(6,7,8, m = 9, n = 10) # (6, 7, 8) {'m': 9, 'n': 10}
Python的4種傳值的方式,必選傳參 func(param)、默認傳參func(param=value)、可選傳參func(*param)、關鍵字傳參func(**param)
# 必選參數(shù) func(param): # 1、定義函數(shù)時的參數(shù)個數(shù),順序已定義好,在調用函數(shù)調時的參數(shù)個數(shù)、順序必須一致,不能多,也不能少,也不能亂(和之前的順序一致),因此叫必選參數(shù),這是最常用的傳參方式
def test(param1,param2,param3): print param1,param2,param3 test(1,"hello",True) test(True,1,"hello")
執(zhí)行結果:
1 hello True True 1 hello
# 默認參數(shù)func(param=value): #
1、定義函數(shù)時,已為參數(shù)設定一個默認值,假如調用函數(shù)時不傳參,在函數(shù)內部使用參數(shù)時的值則為默認值,傳參時則和必選參數(shù)一樣使用
# 2、如果必選參數(shù)和默認參數(shù)同時存在,則默認參數(shù)必須跟在必選參數(shù)后面
# 3、如果有多個默認參數(shù),調用時順序可以不一致,但是必須要顯式表明是哪個默認參數(shù),例如 param2=100,但是建議統(tǒng)一按照函數(shù)定義的順序進行使用
def test(param1,param2=100,param3=True): print param1,param2,param3 test(1)
# 默認參數(shù)可以不傳 test(1,"hello",False)
# 多個默認參數(shù)時,調用順序一致 test(1,param3=False,param2="hello")
# 調用順序也可以不一致
執(zhí)行結果:
1 100 True 1 hello False 1 hello False
以上這篇基于Python 中函數(shù)的 收集參數(shù) 機制就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
在tensorflow實現(xiàn)直接讀取網絡的參數(shù)(weight and bias)的值
這篇文章主要介紹了在tensorflow實現(xiàn)直接讀取網絡的參數(shù)(weight and bias)的值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
詳解Python排序算法的實現(xiàn)(冒泡,選擇,插入,快速)
這篇文章主要為大家介紹了Python中常見的四種排序算法的實現(xiàn):冒泡排序、選擇排序、插入排序和快速排序,文中通過圖片詳細講解了它們實現(xiàn)的原理與代碼,需要的可以參考一下2022-04-04
Python操作MongoDB的教程詳解(插,查,改,排,刪)
MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。是一個介于關系數(shù)據(jù)庫和非關系數(shù)據(jù)庫之間的產品,是非關系數(shù)據(jù)庫當中功能最豐富,最像關系數(shù)據(jù)庫的。本文將詳細和大家聊聊Python操作MongoDB的方法,需要的可以參考一下2022-09-09

