函數的參數
1.形參和實參
1)形式參數(parameter)
一般值函數定義過程中小括號中的參數
def func1(name):
'函數定義過程中的name叫形參'
#因爲它只是一個形式,表示佔據一個參數位置
print('參數進來的' + name + '叫做實參,因爲它是具體的參數值!')
func1("weivid")
傳遞進來的參數是weivid,是實參,因爲是具體的參數
2)實際參數(argument)
函數在調用的過程中傳遞進去的參數
2.函數文檔
上面函數中的’函數定義過程中的name叫形參’ 屬於函數文檔
功能和註釋類似
def func1(name):
'函數定義過程中的name叫形參'
#因爲它只是一個形式,表示佔據一個參數位置
print('參數進來的' + name + '叫做實參,因爲它是具體的參數值!')
func1("weivid") #調用
print(func1.__doc__)
查看函數的默認屬性,一般用雙下劃線加名稱再加雙下劃線表示爲函數的默認屬性,即後續的對象
也可以用help查看
(help(func1))
3.關鍵字參數
關鍵字參數給定,則不會默認使用順序索引,就會使用關鍵字來索引
在函數調用的時候給關鍵字索引
print('關鍵字參數')
def saysome(name,word):
print(name + '->' + word)
saysome('I love','weivid')
saysome('weivid','I love')
給參數作一個關鍵詞定義
saysome(word = 'weivid',name = 'I love')
4.默認參數 定義了默認值的參數
print('默認參數')
def saysome1(name='I love',word = 'weivid'):
print(name + '->' + word)
#使用實參調用也可以打印,因爲函數有默認值
saysome1()
saysome1('nihao') # 默認將nihao傳遞給了name參數
默認參數和關鍵詞參數的區別:
默認參數是函數在定義的時候在初始的形式參數就已經賦初值,沒有賦值實參時,則使用默認的參數來傳遞
關鍵字參數是在函數調用的時候,實參前加關鍵詞索引來賦值
5.蒐集參數(可變參數)
一般只有在python中會出現,其他編程語言鮮有這種參數
1)當函數不知道有多少參數時,可以使用這種蒐集函數
在參數前加**
def test(*params): #也可以使用**params
print('the length of the param is:',len(params))
print('第二個參數是:',params[1])
test(1, 'weivid',2.14,3,45) #有五個參數,長度爲5, 第二個參數時weivid
2)在使用搜集參數和其他參數並存的時候,其他參數一定要使用關鍵字索引
def test(*params,exp): #也可以使用**params
print('the length of the param is:',len(params),exp)
print('第二個參數是:',params[1])
test(1, 'weivid',2.14,3,45,exp = 8) #有五個參數,長度爲5, 第二個參數時weivid
或者時在定義函數將exp = 8,設置一個默認參數
3)下面是一個字典的例子
def profile(first,last,**user_info):
profile = {}
profile['first_name'] = first
profile['last_name'] = last
for key,value in user_info.items():
profile[key] = value
return profile #這個函數的返回值是一個profile字典,後續說到
user_profile = profile('albert', 'einstein', lacation = 'princeton',field = 'physics')
print(user_profile)
4)print函數其實就是一個蒐集參數
print('查看help幫助文檔')
print(help(print))
print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)