iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 11
0
AI & Data

時間管理大師-時間序列分析終極密技系列 第 11

[Day11]日月既往,不可復追-python終極指南:程式開發的新時代,類別與物件

  • 分享至 

  • xImage
  •  

從今天開始將要進入python教學的最後一個重點,那就是程式開發的精隨,現代編程的主流,物件導向程式設計!!!
在python中物件導向程式設計可以分成兩類來說明,一個是今天的主題-類別,另一個叫做物件,讓我們繼續往下深入體會

類別

  • 類別裡封裝了變數和函數
  • 被封裝在類別裡的變數稱為屬性
  • 被封裝在類別裡的函數稱為方法(方式、功能)
  • 先定義類別,才能使用類別中封裝起來的變數和函數
  • 具有封裝、繼承、多型特性

類別就是自訂的資料型態,我們可以打個比方,有個自己定義的類別叫做汽車,那這個類別裡面可能就會有一些變數,用來儲存顏色、品牌等等汽車該有的資訊,這種類別裡面的變數稱為屬性
上面有提到先定義類別,才能使用類別中封裝起來的變數和函數,要怎麼使用呢?以上面為例,我們可以把這個汽車類別放到一個變數裡面,並對這個變數裡的顏色、品牌等等屬性作操作,這個變數就稱為物件,所以我們能把汽車類別放到很多變數去,並且對這些變數做操作,例如變數A的品牌是保時捷,顏色白色,變數B的品牌是賓士,顏色是黑色,這些變數都稱為物件,這些物件的內容或許不同,但結構都是相同的,這就是物件導向程式設計的精隨。
使用方法如下

# 定義類別
class 類別名稱():
    變數a
    變數b
    
# 使用類別
# 建立物件,把類別的結構放到變數裡,變成物件
變數1 = 類別名稱()
變數2 = 類別名稱()

# 操作物件裡的內容
變數1.變數a = 數值X
變數2.變數a = 數值Y
print(變數1.變數a)

程式碼

# 定義類別
class Car():
    color = ""
    brand = ""
    
# 使用類別
if __name__ == "__main__":
    # 建立物件,把類別放到變數裡,變成物件
    porsche = Car()
    benz = Car()
    # 操作物件裡面的內容(屬性)
    porsche.color = "白"
    porsche.brand = "保時捷"
    benz.color = "黑"
    benz.brand = "賓士"
    print(porsche.color, porsche.brand)
    # 印出 白 保時捷
    print(benz.color, benz.brand)
    # 印出 黑 賓士

上面這種方式,就是先建立物件,再一一給值,這種方式很土炮,因此我們有一種一建立物件就對屬性給值的操作,就是在類別內定義初始化副程式,沒錯,類別內可以有變數也能有副程式,類別內的副程式稱為方法,在這裡我們率先說明初始化副程式,這種副程式在物件一建立就會執行,俗稱建構子,初始化副程式的名稱一律為__init__,我們就是要在這底下定義物件一建立就會執行的程式,說到這裡不得不提起self參數,如果副程式會程式會使用該類別內的其他變數或副程式,那麼在宣告副程式時,就必須在參數內加入一個self參數,副程式就可以使用self參數操作到同個類別內其他的變數或副程式,用法如下

# 定義類別
class 類別名稱():
    變數a
    變數b
    
    def __init__(self, 參數...):
        初始化副程式區塊...
    
    def 副程式a(self, 參數...):
        副程式區塊...
        return 傳回值
    
# 使用類別
# 建立物件,把類別放到變數裡,變成物件(使用時不用加self)
變數1 = 類別名稱(參數...)
變數2 = 類別名稱(參數...)

# 操作物件裡的內容
變數1.變數a = 數值X
變數2.變數a = 數值Y
print(變數1.變數a)

print(變數2.副程式a(參數...))

程式碼示範

# 定義類別
class Car():
    color = ""
    brand = ""
    # 定義初始化副程式
    def __init__(self, c, b):
        self.color = c
        self.brand = b
        print("新車建構完成,"+self.milage(0))

    def milage(self, km):
        return "里程數為"+str(km)+"公里"

# 使用類別
if __name__ == "__main__":
    # 建立物件,把類別放到變數裡,變成物件,並執行初始化副程式(加入初始值時不用加self)
    porsche = Car("白", "保時捷")  
    # 印出 新車建構完成,里程數為0公里    
    print(porsche.milage(1000))
    # 印出 里程數為1000公里   

今天的基礎教學就到這裡,明天將會介紹更多物件導向程式設計的方式


上一篇
[Day10]傳奇萬古-python終極指南:讓你的程式天下無敵,例外處理奧義
下一篇
[Day12]時代洪流-python終極指南:最終回,物件導向程式設計特色
系列文
時間管理大師-時間序列分析終極密技30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言