【Python學習筆記Day18】4.2 函數的靈活性

函數的參數

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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章