本文實例講述了Python函數參數操作。分享給大家供大家參考,具體如下:
簡述
在 Python 中,函數的定義非常簡單,滿足對應的語法格式要求即可。對于調用者來說,只需關注如何傳遞正確的參數,以及獲取相應的返回值就足夠了,無需了解函數的內部實現(除非想學習、跟蹤源碼)。
話雖如此,但對于函數的定義來說,靈活性非常高。除了常規定義的必選參數以外,還支持默認參數、可變參數、以及關鍵字參數。這樣以來,不但能處理復雜的參數,還可以簡化調用者的代碼。
形參和實參
不止 Python,幾乎所有的編程語言都會涉及兩個術語:parameter 和 argument。那么,它們之間究竟有什么區別呢?
parameter 是指函數定義中的參數,而 argument 指的是函數調用時的實際參數。
簡略描述:parameter = 形參(formal parameter), argument = 實參(actual parameter)。
例如,定義一個簡單的函數:
>>> def greet(param1, param2):... pass... >>> >>> greet('Hello', 'Python')
其中,param1 和 param2 是函數的形參,而在函數 greet()
被調用時,傳入的('Hello' 和 'Python')則是實參。
固定數量參數的函數
到目前為止,關于函數,我們介紹的都是固定數量的參數。來看一個簡單的示例:
>>> def greet(say, msg):... print(say, msg)... >>> >>> greet('Hello', 'Python')Hello Python
這里,函數 greet()
有兩個參數,用兩個參數調用這個函數,運行得很順利,不會有任何錯誤。
倘若,參數的個數不匹配,會發生什么?
>>> greet() # 沒有參數...TypeError: greet() missing 2 required positional arguments: 'say' and 'msg'>>> >>> greet('Hi') # 只有一個參數...TypeError: greet() missing 1 required positional argument: 'msg'
顯然,解釋器會發牢騷。但是,對 Python 來說,要解決這個問題簡直是易如反掌,繼續往下看!
默認參數
定義函數時,可以使用賦值運算符(=)為參數指定一個默認值。
注意: 如果參數沒有默認值,在調用時必需為其指定一個值;如果參數有默認值,那么在調用時值是可選的,如果為其提供了一個值,將會覆蓋默認值。
>>> def greet(say, name = 'James', msg = 'I am your biggest fan!'):... print(say, ',', name, ',', msg)... >>> greet('Hi') # 只提供強制性的參數Hi , James , I am your biggest fan!>>> >>> greet('Hi', 'Kobe') # 給出一個可選參數Hi , Kobe , I am your biggest fan!>>> >>> greet('Hi', 'Kobe', 'I want to challenge you!') # 給出所有參數Hi , Kobe , I want to challenge you!
新聞熱點
疑難解答