函數的五種參數的定義、用法及注意點


前言

該文檔旨在厘清函數的五種參數的定義、用法及注意點。

概述

1)必選參數;2)默認參數;3)可變參數;4)命名關鍵字參數;5)關鍵字參數:

參數定義的順序:1)→ 2)→ 3)→ 4)→ 5)

各參數說明

1)必選參數

顧名思義,是指在調用函數的時候,必須給這個參數指定一個符合該類型的值

栗子1:計算x的n次方

#計算x的n次方
def powder(x,n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s    

powder(2,3)#調用該函數
View Code

這里的powder(x,n)中的x,n就為必選參數,必須得傳入,否則會報錯

2)默認參數

是指在定義函數的時候,賦予該參數一個默認值,如果調用函數的時候沒有傳入該參數,就使用該參數的默認值

栗子2:計算x的3次方

#計算x的3次方
def powder(x,n=3):
        s = 1
        while n > 0:
            n = n - 1
            s = s * x
        return s

powder(2)
View Code

在調用這個函數的時候,默認n=3,如果要算x的3次方,只需要傳入x的值即可

注意點:

1)必選參數在前,默認參數在后,否則解釋器會報錯;猜測原因可能為:如果設置默認參數在前的規則,會因為連等的原因導致歧義;

2)當函數有多個參數時,把變化大的參數放前面,變化小的參數放后面,變化小的參數就可以作為默認參數: 這句話暫時還不理解,mark一下;

3)不按順序提供默認參數的時候,需要寫上參數名:city = 'Beijing'

4)默認參數的坑:如果把默認參數定義成一個空的list,那么每次調用該函數,如果改變了[]的內容,則下次調用時,默認參數的內容就變了,不再是函數定義時的[]了,

因此默認參數必須指向不變對象;

栗子3:默認參數的坑

#默認參數的坑
def add_end(L=[]):
    L.append('end')
    return L

add_end()
#python函數在定義時,默認參數L的值就被計算出來了,即[]
#因為默認參數L也是一個變量,它指向對象[]
#每次調用該函數,如果改變了L的內容,則下次調用時,默認參數的內容就變了,不再是函數定義時的[]了
View Code

栗子4:修改默認參數的坑

#修改上面默認參數的坑
def add_end(L=None):
    if L is None:
        L=[]
    L.append('end')
    return L

add_end()
#不變對象一旦創建,對象內部的數據就不能修改
View Code

 。。。。

占個坑 還沒寫完 等一下再補上。。


免責聲明!

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



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