close
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()

 

 

 

 

 

 

 

 

arrow
arrow
    全站熱搜

    Eric 發表在 痞客邦 留言(2) 人氣()