python3函數的參數


函數的定義能簡化代碼的邏輯,對於函數的調用者來說,只需要知道如何正確的傳遞參數,以及知道函數將返回什么值就可以了,而函數內部的復雜邏輯被封裝起來,調用者不必了解。

位置參數

調用函數時,傳入實參的值按照位置順序以此賦給形參。

def power(x, n):
    s = 1
    while( n ):
        n = n - 1
        s = s * x
    return s

上面這個函數中的x和n就是位置參數。

默認參數

python的函數同時還允許你給函數的參數設置默認值,當調用者沒有給出參數的值時自動使用默認值。設置默認參數時要注意,必選參數必須在默認參數之前。

def power(x, n = 2):
    s = 1
    while( n ):
        n = n - 1
        s = s * x
    return s

注意:默認參數必須指向不可變對象,否則會發生不可預知的錯誤。

可變參數

在Python函數中還可以定義可變的參數,參數的個數可以是任意個,定義參數時,只需要在參數的前面加一個 * 符號即可。

def N(×num):
    s = 1
    for n in num:
        s = s * n
    return s

A = N(1,2,3,4,5,6,7,8,9,10) #A = 3628800

關鍵字參數

python的關鍵字參數允許你傳入任意個含參數名的參數,這些關鍵字參數在函數內部自動組裝為一個dict。傳入關鍵字參數的時候必須指定參數的名稱(參數名由調用者自行取定),否則該參數會被認為是位置參數從而報錯。

def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)

preson("J",33,city = "Beaijing",job = "Engineer")

命名關鍵字參數

命名關鍵字參數:調用者傳遞參數必須給出參數名,而且參數名是函數定義者預先定義好的。

def person(name, age, *, city, job):
    print(name, age, city, job)

#如果函數的參數中有可變參數,那么后面的命名關鍵字參數就不需要 * 符號來定義了
def person(name, age, *args, city, job):
    print(name, age, args,city, job)

總結:對於任意函數,都可以通過類似func(*args,**kw)的形式調用它,無論它的參數形式是怎樣的。


免責聲明!

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



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