1. 程式人生 > 其它 >函式定義與引數

函式定義與引數

關鍵字def引入了一個函式定義。在其後必須跟有函式名和包括形式引數的圓括號。函式體語句從下一行開始,必須是縮排的。

函式體的第一行語句可以是可選的字串文字,這個字串是函式的文件字串,或者稱為docstring。(更多關於 docstrings 的資訊請參考文件字串) 有些工具通過 docstrings 自動生成線上的或可列印的文件,或者讓使用者通過程式碼互動瀏覽;在你的程式碼中包含 docstrings 是一個好的實踐,讓它成為習慣吧。

函式呼叫會為函式區域性變數生成一個新的符號表。確切的說,所有函式中的變數賦值都是將值儲存在區域性符號表。變數引用首先在區域性符號表中查詢,然後是包含函式的區域性符號表,然後是全域性符號表,最後是內建名字表。因此,全域性變數不能在函式中直接賦值(除非用

global語句命名),儘管他們可以被引用。

函式引用的實際引數在函式呼叫時引入區域性符號表,因此,實參總是傳值呼叫(這裡的總是一個物件 引用 ,而不是該物件的值)。[1]一個函式被另一個函式呼叫時,一個新的區域性符號表在呼叫過程中被建立。

一個函式定義會在當前符號表內引入函式名。函式名指代的值(即函式體)有一個被 Python 直譯器認定為使用者自定義函式的型別。 這個值可以賦予其他的名字(即變數名),然後它也可以被當做函式使用。這可以作為通用的重新命名機制: