今天來介紹Python裡重點一環的函數與物件導向。
放心,Python的物件導向不向Java或者C++那樣的複雜,Python的寫法絕對無腦。
首先先上程式碼
大家猜想,以下程式碼的輸出結果為何?
def my_func():
var1 = "I love "
var2 = "Python a lot!"
return var1 + var2
my_func()
沒錯!
就是輸出 "I love Python a lot!"
首先
def my_func():
為定義一函數名叫my_func且不帶引數。
那如何帶引數進入函數座使用呢?
def my_func(any_var):
只需要將括號內輸入一個變數名稱就可以供函數使用了喔
再來
var1 = "I love "
var2 = "Python a lot!"
各位看得懂吧,簡單的變數定義。
再來
return var1 + var2
告訴函數結束執行並回傳變數回去給呼叫函數的地方,這裡的範例是回傳var1 + var2,當然就是回傳兩字串相加的結果。
最後
my_func()
此行則是告訴Python要呼叫my_func()這個函數
各位不要聽到物件導向就覺得是很新奇的東西,以下由我來為各位簡單介紹物件導向。
class(物件),由物件(裡面的函數)組成,可由主程式或其他類別呼叫,是一個很方便且增加程式碼可讀性的寫法。
以下範例為定義一類別名叫car
class car:
def Tesla_model(self, manufacturer):
self.company = manufacturer
return self.company
def founder(self):
return "Elon Musk"
是不是跟前面的函數長得很像呢,單純在函數的開頭定義了class與class的名稱。
這邊出現了一個詞"self",self是專屬於這個類別的區域變數,只要這個類別還存在,這個變數就不會消失。
也就是說
#一般寫法
company = "Telsa"
return company
#物件導向寫法
self.company = "Telsa"
return self.company
這兩種寫法都是回傳函數內名叫"company"的變數喔!
那我們該如何使用這個類別呢
class car:
def Tesla_model(self, manufacturer):
self.company = manufacturer
return self.company
def founder(self):
return "Elon Musk"
model_y = car()
print(model_y.Tesla_model("Tesla"))
print(model_y.founder())
#output
Tesla
Elon Musk
第9行的地方我們定義了一個變數名叫model_y放入一個car的類別。
第10行我們呼叫car類別裡面的Tesla_model函數且增加了一個引數"Tesla"再印出回傳結果。
第11行我們單純呼叫car類別的founder函數,也就理所當然回傳字串"Elon Musk"且印出。
這邊不知道有沒有看懂物件導向呢?講了這麼多,也自己嘗試實作一次看看有多簡單吧!