python 入門之 – 初識函式(二十四)
上面學完了 python
的基本資料型別和檔案操作之後,今天學了一個新的知識點,函式
,那麼什麼是函式
呢?
先來看一個例子:
a = 2
if a == 1:
print('當前的 a 等於:' + str(a))
print('a 的值比 10 相差'+str(10-a))
elif a == 1:
print('當前的 a 等於:' + str(a))
print('a 的值比 10 相差' + str(10 - a))
elif a ==2:
print('當前的 a 等於:' + str(a))
print('a 的值比 10 相差' + str(10 - a))
elif a == 3:
print('當前的 a 等於:' + str(a))
print('a 的值比 10 相差' + str(10 - a))
>> 當前的 a 等於:2
a 的值比 10 相差8
上方判斷表示式裡面,每個判斷表示式裡面的程式語句都是一樣的,在沒有學過函式之前這樣寫肯定是可以的,當然如果一個一摸一樣的程式碼寫了幾百個地方,那麼如果一個專案上線了之後維護出了問題需要除錯程式碼,那麼就要修改好幾百個一摸一樣的方法了,這樣一來專案的維護成本就非常大了,而函式很好的解決了這個問題。
幾乎每一門語言都有函式,如:在JavaScript
function
,如下方程式碼
function method(){
console.log('呼叫成功')
}
method()
我在 JavaScript
裡面聲明瞭一個方法,然後在我需要的地方直接呼叫函式名稱 mthod
就行,加上括號 ()
證明這是一個方法,他就會匹配到對應的函式,然後執行這個方法裡面的程式語句,這樣一來如果專案上線了出現問題了需要改動程式碼,我只需要改變方法裡面的內容,那麼整個專案呼叫的這個方法就會全部被改變,這也就是通常意義上的 面向物件
,相反面向物件
就是 面向過程
,同理,在我們沒有學過 python
的函式之前,也就是如前面的那些章節的程式碼程式我們全部都是面向過程
python
的函式世界吧。
如上方 JavaScript
函式宣告以關鍵字 function
,在 python
裡面函式以關鍵字 def
宣告,我以上面最開始的例子來示範:
a = 2
def method():
print('當前的 a 等於:' + str(a))
print('a 的值比 10 相差' + str(10 - a))
if a == 1:
method()
elif a == 1:
method()
elif a ==2:
method()
elif a == 3:
method()
>> 當前的 a 等於:2
a 的值比 10 相差8
可以看到我通過函式宣告寫出來的程式碼更加簡介明瞭,而且可讀性更強,如果程式出了問題我只要改動 method()
函式內部的程式語句,那麼全域性都變了,維護也更加容易了。
可能還是有朋友看不懂函式為什麼要這麼寫,那麼我就來一個一個的介紹,首先 python
裡面嚴格規定了,宣告一個函式必須要是 def
關鍵字開頭的,def
關鍵字後面跟著的字母是函式的名稱,關於函式名稱可以隨便取名,但是一定要是 英文字母
,最好語義話方便別人能夠讀懂,英文字母后面的必須跟著一個括號 ()
,就像我們呼叫 python
內建的函式一樣,後面要跟著一個括號,代表你呼叫的是一個函式方法,然後才是和迴圈以及判斷表示式一樣的操作。
當然你呼叫方法的時候如果不加括號,指向的一定不是這個函式的執行方法,而是指向這個函式的記憶體地址:
def method():
print('hello word')
#如果你想檢視函式 method 執行的記憶體地址,你可以直接 print 一下
print(method)
>> <function method at 0x10f325268>
函式在我們日常編碼當中起著至關重要的作用,後面的幾個章節開始都會圍繞函式來進行進一步的講解,今天就到這兒了。