Python實體物件建立與使用【Python練習Day8】

關於Python實體物件,這篇練習我認為有點難度,花了蠻久的時間。

主要是對於「物件導向」的概念很難理解,因此除了看彭彭老師的教學影片外,還惡補了一些關於物件導向的文章來加深。

Python實體物件
Python實體物件

Python類別用法

  • 類別與類別屬性
  • 類別與實體物件、實體屬性

什麼是物件導向?

Python是一種物件導向的程式語言,彭彭老師在影片也說類別兩個用法,但主要在這階段,會介紹第二種與實體物件有關的使用方式。

而對於物件導向的說明,我推薦快樂學程式中的初學者應該要知道的物件導向概念iT 邦幫忙裡面的這張圖,清楚說明了物件導向程式語言中,何謂類別、屬性和方法。

圖片來源:[ASP.NET] [C#] 物件導向 – 類別及物件的觀念確立 – iT 邦幫忙

Python實體物件-實體物件說明

Python實體物件

Python的實體物件透過類別來建議,因此必須先定義類別,再透過類別建立實體物件
而先建立好實體物件,後續才能使用實體屬性(封裝在實體物件中的變數)。

實體物件基本語法

class 類別名稱:
   def __init__(self): #定義初始化函式 
類別名稱() #呼叫初始化函式

練習一:宣告一個物件有兩個屬性x,y

class Point:
  def __init__(self,x,y):
    self.x=x
    self.y=y

#建立實體物件
#此實體物件包含x,y兩個實體屬性

p=Point(1,5)

#使用實體
#實體物件.實體屬性名稱
print(p.x+p.y)

執行結果

6


練習二:宣告一個FullName物件,有姓、名兩個屬性。

class FullName:
  def __init__(self,first,last):
    self.first=first
    self.last=last

name1=FullName("Y.C.","YEN")
print(name1.first,name1.last)

name2=FullName("C.Y.","Chen")
print(name2.first,name2.last)

執行結果

Y.C. YEN
C.Y. Chen


Python實體方法

Python實體方法則是指「封裝在實體物件中的函式」,一個實體物件內可以有多的實體方法,實體方法使用方式跟函式一樣。

實體方法基本語法

class 類別名稱:
    def __init__(self):
    #定義初始化函式
    #定義實體方法

練習:定義一個實體類別Point2,包含實體屬性x1,y1和兩個實體方法(show和distance),分別印出資料與計算距離。

class Point2:
  def __init__(self,x1,y1):
    self.x1=x1
    self.y1=y1
  def show(self): #第一個參數固定為self
    print(self.x1,self.y1), #透過self操作實體物件
  def distance(self,targetx,targety):
    return (((self.x1-targetx)**2)+((self.y1-targety)**2))**0.5

p2=Point2(3,4) #建立實體物件
p2.show() #呼叫實體方法(函式)
result=p2.distance(0,0)
print(result)

結果:先印出實體物件參數,在印出實體方法運算結果。

3.4
5.0

本次練習檔與影片

練習檔網址:Day8(12/13)Python 實體物件的建立與使用
影片列表:Python 實體物件的建立與使用 – 上篇 &下篇
Python練習計畫-行銷人學Python的理由?【Python練習】

【Python新手練習】相關文章

【Python新手練習】系列文,是一個行銷人學習Python的筆記,希望可以藉由練習程式,訓練更強大的邏輯思考,如果你也對這塊有興趣,這些文章或許可以幫助到你!也歡迎一起交流。

行銷人的Python練習90計畫-為什麼要學Python?
Day0:Google Colab新手Python開發環境推薦
Day1:Python變數與資料型態
Day2:Python判斷式與迴圈(流程控制)
Day3:Python函式 定義、呼叫與回傳
Day4:載入Python模組與使用
Day5:Python檔案讀取和儲存
Day6:Python亂數與統計
Day7:Python API 開放資料串接,抓取台北市政府公開資料
Day8:Python實體物件建立與使用
Day9:Python爬蟲實戰!抓取PTT電影版

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *