在Python中如何自定義函數:其格式為 def 函數名(函數參數): 內容 交互模式下編寫函數完畢按兩次回車返回>>> pass作為函數為空函數的占位符(她的意思是什麼都不做),也就是說沒想好寫什麼函數,先用pass占位,然後先讓程式跑起來; 數據類型檢查可以用內置函數isinstance(obj ...
在Python中如何自定義函數:其格式為 def 函數名(函數參數):
內容
交互模式下編寫函數完畢按兩次回車返回>>>
pass作為函數為空函數的占位符(她的意思是什麼都不做),也就是說沒想好寫什麼函數,先用pass占位,然後先讓程式跑起來;
數據類型檢查可以用內置函數isinstance(object,calssinfo)
實現:如果參數object是classinfo的實例,或者object是classinfo類的子類的一個實例, 返回True。如果object不是一個給定類型的的對象, 則返回結果總是False。
函數參數:
函數預設參數:預設情況下n的值為2,所以在傳參數的時候只傳第一個參數就可以了,如果在調用的時候傳參有第二個參數,則會將預設的參數覆蓋掉。這樣做的好處是不必要每次都輸入相同項,非常的方便。如果有多個參數的時候,預設是順序傳入,如果想在本次調用時更改預設的參數值,則在調用函數時直接寫 參數名=參數值。這裡需要註意的是,
預設參數必須指向不變對象
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
可變參數:當遇到參數不確定的函數時,需要用list或者tuple作為參數。但是調用的時候傳入的參數必須是list或者tuple。如果利用可變函數參數,則可以省略這一點,只需要在定義參數的時候前面加上一個*號。*list就是把list中的所有元素作為可變參數傳入進去。
關鍵字參數:以**keyword表示,在參數中以'什麼'='什麼'的形式傳入,並且會自動組裝成一個dict;關鍵字參數不是必選參數;但是也可傳入任意個數的關鍵字參數。
關鍵字參數的作用在於擴展參數,比如在用戶註冊時候,有些是必填項,有些事選填項,用戶提供更多參數的時候我們同樣可以接收,並且直接組織成一個dict;
命名關鍵字參數:命名的關鍵字參數是為了限制調用者可以傳入的參數名(強制調用者傳入命名關鍵字參數,不傳入就報錯),同時可以提供預設值。也就是說這個函數只接受命名的關鍵字參數。這是為了限制關鍵字參數的個數。
當然也可以設置預設值。此時就可以不用傳入預設的命名關鍵字參數。
組合參數:
在Python中,必選參數,預設參數,可變參數,關鍵字參數,命名關鍵字參數可以任意組合使用,非常方便;可變參數無法和命名關鍵字參數混合
參數定義的順序必須是:必選參數,預設參數,可變參數和命名關鍵字參數,關鍵字參數