函數經過def關鍵字定義。 def關鍵字後跟一個函數的 標識符 名稱,而後跟一對圓括號。圓括號之中能夠包括一些變量名,該行以冒號結尾。接下來是一塊語句,它們是函數體。
函數形參:
函數中的參數名稱爲 形參 而你提供給函數調用的值稱爲實參 。
局部變量:
當你在函數定義內聲明變量的時候,它們與函數外具備相同名稱的其餘變量沒有任何關係,即變量名稱對於函數來講是 局部 的。這稱爲變量的 做用域 。全部變量的做用域是它們被定義的塊,從它們的名稱被定義的那點開始。
global語句:
global語句被用來聲明x是全局的——所以,當咱們在函數內把值賦給x的時候,這個變化也反映在咱們在主塊中使用x的值的時候。
你可使用同一個global語句指定多個全局變量。例如global x, y, z。
默認參數值:默認參數值應該是不可變的。
【重要】
只有在
形參表末尾
的那些參數能夠有默認參數值,即你不能在聲明函數形參的時候,先聲明有默認值的形參然後聲明沒有默認值的形參。
這是由於賦給形參的值是根據位置而賦值的。例如,def func(a, b=5)是有效的,可是def func(a=5, b)是 無效 的。
關鍵參數:
若是你的某個函數有許多參數,而你只想指定其中的一部分,那麼你能夠經過命名來爲這些參數賦值——這被稱做 關鍵參數 ——咱們使用名字(關鍵字)而不是位置(咱們前面所一直使用的方法)來給函數指定實參。
這樣作有兩個 優點 ——一,因爲咱們沒必要擔憂參數的順序,使用函數變得更加簡單了。2、假設其餘參數都有默認值,咱們能夠只給咱們想要的那些參數賦值。
return語句:
注意,沒有返回值的return語句等價於return None。None是Python中表示沒有任何東西的特殊類型。
例如,若是一個變量的值爲None,能夠表示它沒有值。
除非你提供你本身的return語句,每一個函數都在結尾暗含有return None語句。
經過運行print someFunction(),你能夠明白這一點,函數someFunction沒有使用return語句,如同:
def someFunction():
pass
pass語句在Python中表示一個空的語句塊。 html
DocStrings:
文檔字符串的慣例是一個多行字符串,它的首行以大寫字母開始,句號結尾。第二行是空行,從第三行開始是詳細的描述。 強烈建議 你在你的函數中使用文檔字符串時遵循這個慣例。 python
你可使用__doc__(注意雙下劃線)調用函數的文檔字符串屬性(屬於函數的名稱)。請記住Python把 每同樣東西 都做爲對象,包括這個函數。咱們會在後面的類一章學習更多關於對象的知識。 函數
若是你已經在Python中使用過help(),那麼你已經看到過DocStings的使用了!它所作的只是抓取函數的__doc__屬性,而後整潔地展現給你。你能夠對上面這個函數嘗試一下——只是在你的程序中包括help(printMax)。記住按q退出help。 工具
自動化工具也能夠以一樣的方式從你的程序中提取文檔。所以,我 強烈建議 你對你所寫的任何正式函數編寫文檔字符串。隨你的Python發行版附帶的pydoc命令,與help()相似地使用DocStrings。 學習