104學習精靈

OOP

OOP
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

取消
OOP(Object-oriented programming, OOP)物件導向程式設計,指一種程式設計典範,同時也是一種程式開發的方法論。它將物件作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充套件性。 物件導向程式設計的雛形,早在1960年的Simula語言中即可發現,當時的程式設計領域正面臨著一種危機:在軟硬體環境逐漸複雜的情況下,軟體如何得到良好的維護?物件導向程式設計在某種程度上透過強調可重複性解決了這一問題。20世紀70年代的Smalltalk語言在物件導向方面堪稱經典——以至於30年後的今天依然將這一語言視為物件導向語言的基礎。 物件導向程式設計可以被視作一種在程式中包含各種獨立而又互相呼叫的單位和物件的思想,這與傳統的思想剛好相反:傳統的程式設計主張將程式看作一系列函式的集合,或者直接就是一系列對電腦下達的指令。物件導向程式設計中的每一個物件都應該能夠接受資料、處理資料並將資料傳達給其它物件,因此它們都可以被看作一個小型的「機器」,或者說是負有責任的角色。 目前已經被證實的是,物件導向程式設計推廣了程式的靈活性和可維護性,並且在大型專案設計中廣為應用。此外,支援者聲稱物件導向程式設計要比以往的做法更加便於學習,因為它能夠讓人們更簡單地設計並維護程式,使得程式更加便於分析、設計、理解。反對者在某些領域對此予以否認。
關於教室
關注人數 10 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
關於教室
關注人數 10 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
Hi~ 歡迎分享學習資源,有學習問題可匿名向Giver發問!
我要分享
我要提問

OOP 學習推薦

全部
影片
文章

不知如何開始嗎? 先進行技能挑戰吧~

技能挑戰:初級
目前等級:未達初級
288 人已通過「初級」測驗,通過率84%,和學習精靈一起探索知識、增強能力!
我要挑戰
Mike Ku

Learn Code With Mike品牌創辦人

2021/10/22

Python封裝(Encapsulation)實用教學
Q:什麼是Python封裝(Encapsulation)
封裝(Encapsulation)的概念就有點像權限控制,有些屬性(Attribute)或方法(Method)只想於類別內部使用,而不想公開於外部,除了減少程式碼因來源端不適當的使用發生問題外,也可保護其中重要的商業邏輯。
一般情況下,來源端皆可存取類別中公開的屬性(Attribute)及方法(Method),如下範例:
# 部落格類別
class Blog:
def __init__(self):
self.author = "Mike" # 作者屬性
self.titles = [] # 文章標題屬性
def add_post(self, title): # 新增文章
self.titles.append(title)
blog = Blog()
blog.add_post("Python Programming")
blog.add_post("Learn How to Code")
print("Author: ", blog.author)
print("Blog Titles: ", blog.titles)
如果我們要防止來源端存取作者屬性(Attribute)及呼叫新增文章標題方法(Method),則需透過封裝(Encapsulation)的概念來進行設計。接下來就分別說明如何封裝(Encapsulation)類別中的屬性(Attribute)及方法(Method)。
Q:什麼是私有屬性(Private Attribute)?
在類別(Class)中可以進行存取,而外部無法存取的屬性(Attribute)。使用方式就是在私有屬性(Private Attribute)前加上兩個底線(__),如下範例:
# 部落格類別
class Blog:
def __init__(self):
self.__author = "Mike" # 作者屬性
self.__titles = [] # 文章標題屬性
def __add_post(self, title): # 新增文章
self.__titles.append(title)
blog = Blog()
print(blog.__author)
從範例中可以看到,來源端無法存取到類別中的author及titles私有屬性(Private Attribute)。如果是利用Visual Studio Code來開發Python的話,在來源端物件的IntelliSense清單中就選不到私有屬性(Private Attribute),證明成功將其進行封裝(Encapsulation)。
但是Python不像其他物件導向程式語言真的把屬性(Attribute)或方法(Method)變為私有,事實上來源端還是可以存取得到。Python事實上把加了兩個底線的私有屬性(Private Attribute)重新命名,在前面加上了底線類別名稱,來源端只要透過此名稱還是可以進行存取,如下範例:
blog = Blog()
print(blog._Blog__author) #執行結果為:Mike
所以在類別中的屬性(Attribute)或方法(Method)加上兩個底線(__)主要是告訴來源端此屬性(Attribute)或方法(Method)為私有,避免來源端直接或意外的存取。
Q:什麼是私有方法(Private Method)?
在類別(Class)中可以進行存取,而外部無法存取的方法(Method)。和私有屬性(Private Attribute)作法相同,在私有方法(Private Method)前面加上兩個底線(__),如下範例:
# 部落格類別
class Blog:
def __init__(self):
self.__author = "Mike" # 作者屬性
self.__titles = [] # 文章標題屬性
def __add_post(self, title): # 新增文章
self.__titles.append(title)
blog = Blog()
blog.__add_post("Python tutorials")
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/01/python-encapsulation.html )網站觀看更多精彩內容。
0 0 744 0

熱門精選

躺躺貓仔

行銷a貓

6小時前

行銷思維大升級!AI浪潮下的新媒體:翻轉品牌、應用社群大數據
🚀 讓我們帶你,探索數位行銷的新境界 🚀
第1場:聚焦於AI大數據的威力,揭示真實聲音的秘密
第2場:則以《500輯》為例,展現傳統媒體品牌的翻轉之路
從大數據的洞察到新媒體的創新,開啟媒體產業的全新時代 !
名額有限,熱烈報名中
1 1 772 0
Mike Ku

Learn Code With Mike品牌創辦人

2021/10/21

Python繼承(Inheritance)實用教學
Q:如何使用Python繼承?
將共同的屬性(Attribute)或方法(Method)定義在一個類別(Class)中,而其它類別(Class)則透過繼承(Inheritance)的方式來擁有它,如下範例:
class Transportation: # 交通工具
def __init__(self):
self.color = "white"
def drive(self): # 駕駛方法
print("drive method is called.")
class Car(Transportation):
def accelerate(self): # 加速方法
print("accelerate is method called.")
class Airplane(Transportation):
def fly(self): # 飛行方法
print("fly method is called.")
Transportation類別(Class)就叫父類別或基底類別(Base Class),而Car及Airplane類別(Class)就稱為子類別(Sub Class),在類別名稱的地方透過括號的方式來繼承(Inheritance),藉此擁有父類別公開的屬性(Attribute)及方法(Method),如下範例:
mazda = Car()
mazda.drive()
print(mazda.color)
Q:什麼是方法覆寫?
當子類別中定義了和父類別同名的方法(Method),這時候子類別的物件(Object)呼叫這個同名方法時,其中的實作內容將會覆蓋掉父類別的同名方法,這就叫做方法覆寫(Method Overriding),如下範例:
class Transportation: # 交通工具
def drive(self): # 駕駛方法
print("Base class drive method is called.")
class Car(Transportation):
def drive(self):
print("Sub class drive method is called.")
mazda = Car()
mazda.drive()
這時候如果我們想在子類別中執行父類別的方法(Method)時,則可以使用super()內建方法來達成,如下範例:
class Transportation: # 交通工具
def drive(self): # 駕駛方法
print("Base class drive method is called.")
class Car(Transportation):
def drive(self):
super().drive()
print("Sub class drive method is called.")
mazda = Car()
mazda.drive()
Q:什麼是多層繼承?
就是繼承(Inheritance)的層級超過一層以上,如下範例:
class Animal: # 動物類別
pass
class Bird(Animal):
def fly(self):
print("fly")
class Duck(Bird):
pass
duck = Duck()
duck.fly()
Q:什麼是多重繼承?
就是子類別繼承(Inheritance)一個以上的父類別,並且各類別應各司其職,避免有相同的方法,如下範例:
class Animal: # 動物類別
def eat(self):
print("Animal eat method is called.")
class Bird:
def walk(self):
print("Bird walk method is called.")
class Duck(Animal, Bird):
pass
duck = Duck()
duck.eat()
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/01/python-inheritance.html )網站觀看更多精彩內容。
3 0 509 0

推薦給你

知識貓星球

喵星人

45分鐘前

Hume史上最強的口語聊天AI-優點、缺點、使用技巧一次看!
在全球化的時代,英語能力越來越重要。無論是求學、就業、旅遊,英語都能派上用場。然而,許多人雖然學習了英語,卻不敢開口說。這是因為他們缺乏英語口說的練習機會。
Hume是一款AI英語口說練習工具,可以幫助使用者克服這個問題。Hume利用自然語言處理和機器學習技術,提供以下功能:
① 情境式對話練習:Hume提供多種情境式對話,例如問路、購物、用餐等,使用者可以選擇自己感興趣的場景進行練習。Hume會模擬對話的另一方,並根據使用者的回答進行即時反饋。
② 發音評估:Hume可以評估使用者的英語發音,並提供具體的改善建議。
流暢度和完整度評估:Hume可以評估使用者的英語口說流暢度和完整度。
③ 個人化學習計劃:Hume可以根據使用者的個人情況和學習目標,制定個性化學習計劃。
【Hume的優點】
▶ 方便易用:Hume可以在電腦、平板電腦或手機上使用,使用者無需註冊或下載任何軟體。
▶ 性價比高:Hume提供免費版和付費版,免費版的功能也足以滿足大部分使用者的需求。
▶ 有效性:Hume已被證實可以有效提高使用者的英語口說能力。
【Hume的缺點】
▶ 缺乏真人互動:Hume只能提供虛擬對話練習,使用者無法與真人進行互動。
▶ 對話題材有限:Hume目前提供的對話題材有限,使用者可以選擇的範圍較小。
Hume的使用方式
⟡ Hume的使用方式非常簡單,使用者只需以下幾個步驟即可開始練習:
❶ 訪問Hume的官方網站:https://www.hume.ai/
❷ 選擇“立即開始”
❸ 選擇自己感興趣的對話場景
❹ 開始練習
❺ 在練習過程中,Hume會模擬對話的另一方,並根據使用者的回答進行即時反饋。
⟡ Hume的即時反饋包括:
▶ 發音反饋:Hume會評估使用者的英語發音,並提供具體的改善建議。
▶ 流暢度和完整度反饋:Hume會評估使用者的英語口說流暢度和完整度。
▶ 整體表現評分:Hume會根據使用者的整體表現進行評分。
使用者可以根據Hume的即時反饋,不斷調整自己的發音和語調,提高英語口說水平。
⟡ Hume還提供了一些其他功能,例如:
▶ 個人單詞表:使用者可以將自己不熟悉或發音不準的單詞添加到個人單詞表中,以便日後重點練習。
▶ 練習歷史:使用者可以查看自己的練習歷史,並追踪自己的進步。
【Hume的使用技巧】
⓵ 選擇自己感興趣的對話場景:這樣可以提高學習的興趣和積極性。
⓶ 每天練習一小段時間:持之以恆的練習才能取得效果。
⓷ 注意發音和語調:發音和語調是英語口說的基礎,要特別注意練習。
⓸ 不要害怕犯錯:犯錯是學習過程中的自然現象,不要害怕犯錯,要從錯誤中吸取教訓。
⓹ 結合其他英語學習方法:Hume只是一種英語口說練習工具,要結合其他英語學習方法,才能取得更好的效果。
【Hume 的費用方案】
▶ 免費版功能包括:
* 無限次數的對話練習
* 發音評估
* 流暢度和完整度評估
* 個人單詞表
▶ 付費版的方案包括月度訂閱(9.9 美元/月)、年度訂閱(99美元/年),並在免費版功能的基礎上,增加了以下功能:
* 個人化學習計劃
* 真人回饋
* 更多對話場景
Hume是一款功能強大、易於使用的AI英語口說練習工具。它可以幫助使用者提高英語口說能力、流暢度和自信心。如果你正在尋找一款高效的英語口說練習工具,Hume是一個不錯的選擇!
➤ 立即關注【AI趨勢報-科技愛好者的產地】獲得更多科技新知!
0 0 45 0
你可能感興趣的教室