import os import sys import copy from functools import reduce #物件導向的程式設計 ! ''' Python 是一種物件導向(OOP,object oriented programming)語言,在 python裡面,所有的資料類型都是' 物件 ',然而,python也允許工程師自己 創類型,而自創的類型,我們稱為 ( 類別[Class] ) ''' class ClassName(): #Class name 第一個字建議大寫 ''' Statement ''' car = 100 #定義屬性 carName = "Toyota" def PrintCarInfo(self):#定義方法 print(self.car, self.carName) def main(): item = ClassName() #使用這個class 的方法 item.PrintCarInfo() #使用這個class裡面的method的方法 if (__name__=='__main__'): main()
__init__
import os import sys import copy from functools import reduce #物件導向的程式設計 ! ''' 接下來,來介紹一個很重要的東西,那就是初始化整個類別, 為什麼這個很重要 ? 很簡單,這是有典故的,讓我娓娓道來。 在剛進這間公司的時候,第二天,我被指派了一個工作, 然後,我在trace的時候,怎麼看都看不懂,值從哪裡來的, 於是,我就問了比較資深的同事, 然後,他也講不出來這個__init__, 所以我認為這真的很重要,對於剛接觸python的人且有程式底子的人來說, 看完這部分,真的能讓你有一種,喔幹!!! 原來喔的感覺。 好了,我簡單來說, 類別啊,都有一個叫做construct,一個叫做destruct,建構和解構(台灣這樣翻嗎?) 所謂的建構,就是你創建這個類別的時候,第一個會跑到的地方,也就是所謂的初始化, 在C++裡面,就是: type A::A() { } 而所謂的解構,就是你要delete這個類別的時候,跑到的最後一個地方 type A::~A() { } 而在python裡面, 初始化的名稱是用 __init__ ,而 init 其實就是initialization的縮寫, 用程式來說,可能會比較容易點 ''' class ClassName(): #Class name 第一個字建議大寫 abcd= 100 def __init__(self,value): #step.2 abcd = value #step.3 print("INIT Value: %d" % value) #step.4 (value = 999) def main(): item = ClassName(999) #step.1 print("XXXXX") #step.5 if (__name__=='__main__'): main()
import os import sys import copy from functools import reduce class Bank(): bankName = 'Eric back' def __init__(self, uname, money): self.name =uname self.balance = money def get_balance(self): return self.balance def withdraw_money(self,money): self.balance -=money def main(): ericBank= Bank('abcde', 987) print(ericBank.name.title(), #Abcde ericBank.name , #abcde ericBank.get_balance()) #987 ericBank.withdraw_money(100) print(ericBank.get_balance()) #887 if (__name__=='__main__'): main()
全站熱搜