def - 建立函式
在Python中建立函式的方法是使用def 陳述句
基本語法以範例說明:
def functionName(argv): #do someting return argv # can return something or not
如果你有學過其他的程式語言,可能會發現一些不一樣的地方:
- 沒有定義回傳值型態-在動態語言Python中,回傳值的型態就是由傳回的值決定,因此在Python中並不支 援Overload功能。
- 沒有參數型態-同樣的,參數的型態可能為任何型態
若不想要有回傳值只要在方法的最後直接輸入換行便能離開函式
>>> def hello(name): ... print("You back! " + name) ... >>> hello("Dr. Freeman") You back! Dr. Freeman
在函式之中也可以在定義一個函式,這稱為內部函式。
>>> def doubleSum(num,num2): ... def double(x): ... return x ** 2 ... return double(num) + double(num2) ... >>> doubleSum(3,4) ... 25
再來是一個判斷是否為質數的範例:
>>> from math import sqrt >>> def prime(num): ... for i in range(2,int(sqrt(num))): ... if num % i == 0 ... return False ... return True ... >>> prime(97) True
下面一個例子:
def func(): print x
在這個範例中,x的值的優先順序是:在func()方法中找區域變數定義,沒有則往全域變數尋找,若都沒有就往
Python所擁有的內建變數尋找,如果都找不到則顯示一個error訊息。
另外一點必須注意的是,由於上述機制的原因,我們不能在method中定義x的值:
def func(): print x x = 10 x=20 func()#error
在這之中,由於優先尋找區域變數定義的緣故,在未定義時就要印出,此範例會顯示一個UnboundLocalError的錯誤訊息。