104學習

物件導向程式設計

物件導向程式設計
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

取消
這項技能強調將程式拆分成具有屬性和行為的「物件」,讓程式結構更清晰、易維護。透過封裝、繼承和多型等概念,提高程式的重用性與擴充性,減少錯誤發生。對團隊合作也有幫助,因為設計思維更貼近現實世界,溝通更順暢。具備此能力,能提升軟體開發效率與品質,符合現代軟體工程需求。
關於教室
關注人數 0 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
關於教室
關注人數 0 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
Hi~ 歡迎分享學習資源,有學習問題可匿名向Giver發問!
我要分享
我要提問

物件導向程式設計 學習推薦

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 1913 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 979 0

104學習精選課程

看更多課程
想提升職場競爭力?專業技能課程看起來👇

熱門精選

104學習

產品

04/28 09:00

新手如何用 AI 整理會議紀錄?線上會議、實體會議一次看懂
開會時一邊聽、一邊記、一邊思考,常常會遇到幾個問題:重點來不及抄、決議沒寫清楚、待辦事項散落在聊天訊息或腦袋裡。現在,只要善用手機錄音、會議逐字稿與常見 AI 工具,新手也能更快整理出一份清楚、可追蹤的會議紀錄。
不過,AI 不是幫你「完全取代紀錄」,而是協助你加快整理流程。正式發送前,仍然需要人工確認人名、日期、金額、負責人、截止日與會議決議。
本文將分成「線上會議」與「實體會議」兩種情境,教你用手邊常見工具,搭配 ChatGPT、Claude、Gemini、NotebookLM 等 AI 工具,整理出適合交給主管、團隊或客戶追蹤的會議紀錄。
使用 AI 前,先確認 3 件事
在開始錄音、轉錄或把內容交給 AI 前,請先確認:
第一,會議是否允許錄音、錄影或轉錄。建議事前告知與會者錄音目的、使用範圍與保存方式。
第二,會議內容是否包含敏感資料。如果涉及客戶資料、個人資料、薪資、人事、財務、商業機密或未公開策略,不建議自行上傳到外部 AI 工具,應優先使用公司核准的平台。
第三,AI 產出只能作為初稿。AI 可能聽錯、漏掉脈絡,或把「討論中的想法」誤寫成「已決定事項」,正式使用前一定要人工檢查。
台灣《個人資料保護法》對個人資料的蒐集、處理與利用,強調應尊重當事人權益,不得逾越特定目的的必要範圍,並應與蒐集目的有正當合理關聯;本文為一般工作效率教學,不構成法律意見,實際使用仍應依公司規範與相關法規辦理。
AI 可以幫會議紀錄做什麼?
AI 在會議紀錄中,最常見的用途有 5 種:
1. 錄音轉文字:把會議錄音或逐字稿變成可整理的文字資料。
2. 摘要重點:從冗長對話中整理出主要討論內容。
3. 萃取決議:找出會議最後確認的結論。
4. 整理待辦事項:列出任務、負責人、截止日期。
5. 改寫成正式紀錄:把口語內容整理成適合寄出的版本。
好的會議紀錄,不是把每句話都記下來,而是清楚回答三個問題:
討論了什麼?決定了什麼?接下來誰要做什麼?
情境一:線上會議怎麼做?
線上會議最適合新手練習,因為 Google Meet、Teams、Zoom 等平台通常已有錄影、字幕、逐字稿或 AI 摘要功能。不過,這些功能是否可用,會依公司帳號、方案、裝置、地區與管理員設定而不同。
Google Meet 的「Take notes for me」可透過 Gemini 協助記錄會議內容,但實際可用性會受到帳號與設定影響。Zoom AI Companion 也提供會議摘要功能,且管理員可啟用或停用相關設定。
線上會議建議流程
第一步:會前確認可否錄影、錄音或開啟逐字稿
如果是客戶會議、敏感會議或跨部門會議,建議先確認公司規範,並告知與會者。
可使用這句話:
「為了方便會後整理會議紀錄,這場會議會開啟錄影或逐字稿功能,紀錄僅供本專案追蹤使用。」
第二步:會中保留原始資料
使用平台內建的錄影、逐字稿、字幕、AI 筆記或會議摘要。
第三步:會後交給 AI 整理
把逐字稿或會議重點貼到 ChatGPT、Claude 或 Gemini,請 AI 整理成正式會議紀錄。
第四步:人工檢查後再寄出
檢查決議是否正確、待辦是否有負責人、截止日是否清楚,以及 AI 是否誤判會議結論。
情境二:實體會議怎麼做?
實體會議的難點是聲音來源比較複雜,可能有多人同時說話、環境雜音、白板討論、投影片補充等。因此,實體會議更需要做好錄音與現場補充紀錄。
最簡單的流程是:
手機錄音 → 轉成文字或整理重點 → 交給 AI 整理 → 人工確認
iPhone:使用內建「語音備忘錄」
iPhone 內建的「語音備忘錄」可用來錄製會議、課程或語音筆記,Apple 官方說明可開始錄音、暫停、繼續錄音,也可調整手機與聲音來源的距離以改善錄音音量。
操作方式:
1. 打開 iPhone 的「語音備忘錄」App。
2. 點選紅色錄音按鈕開始錄音。
3. 會議中若暫停,可按暫停;繼續時再恢復錄音。
4. 會議結束後按停止,錄音會自動儲存。
5. 將檔名改成「日期+會議名稱」,例如「2026-04-27_行銷週會」。
6. 會後可分享錄音檔,或先轉成文字再交給 AI 整理。
Android:使用內建「錄音機」或「Voice Recorder」
Android 手機品牌眾多,內建錄音 App 的名稱與功能會依品牌、機型與系統版本不同。常見名稱包含「錄音機」、「語音錄音」、「Recorder」或「Voice Recorder」。
如果使用 Google Pixel,可留意 Google Recorder;Google 官方說明 Recorder 主要適用於 Pixel,可用來錄製會議、課程等聲音,並提供搜尋與 AI 功能。如果使用 Samsung Galaxy,Samsung 官方說明 Voice Recorder 可錄製課程、會議與對話,支援裝置也可使用 Galaxy AI 進行轉錄、加入 Samsung Notes 或分享文字檔。
Android 通用操作方式:
1. 在手機搜尋「錄音」、「Recorder」或「Voice Recorder」。
2. 開會前先測試 5 到 10 秒,確認收音正常。
3. 把手機放在桌面中央,不要放在口袋或包包裡。
4. 會議結束後停止錄音。
5. 重新命名錄音檔,建議使用「日期+會議名稱」。
6. 若手機支援轉文字,可先產出逐字稿;若不支援,可先手動整理重點,再交給 AI 工具處理。
實體會議小技巧
實體會議中,AI 不一定能準確聽出每個人的聲音。建議主持人在重要決議後,主動重複一次:
「確認一下,這件事由 Amy 負責,下週五前完成第一版,對嗎?」
這句話看似簡單,卻能大幅提高會議紀錄的準確度。
常見、容易取得的 AI 工具怎麼選?
以下工具不代表所有功能都免費,也不保證每個帳號都能使用。部分功能會依方案、裝置、地區與公司管理員設定而不同,使用前建議先確認。
1. ChatGPT:適合整理正式會議紀錄
ChatGPT 適合把逐字稿、會議重點或錄音摘要整理成正式文件,例如會議紀錄、主管摘要、待辦清單或會後 Email。若帳號與裝置支援 ChatGPT Record,也可用於轉錄與摘要會議、腦力激盪或語音筆記;OpenAI 官方同時提醒,轉錄與摘要可能出錯,重要資訊需要人工檢查。
適合用在:正式會議紀錄、主管摘要、待辦清單、會後 Email。
2. Claude:適合處理較長逐字稿與文件
如果會議逐字稿很長,或需要同時參考簡報、企劃書、專案文件,Claude 是常見選項。Claude 官方說明支援上傳 PDF、DOCX、CSV、TXT、HTML、ODT、RTF、EPUB、JSON 等文件格式;部分檔案功能仍會依帳號設定與限制而不同。
適合用在:長會議逐字稿、訪談紀錄、研討會內容、多份文件摘要。
3. Gemini:適合 Google 工作環境
如果團隊平常使用 Gmail、Google Docs、Google Drive、Google Meet,Gemini 會比較容易放進日常流程。Google 文件中的 Gemini 可協助摘要文件,Drive 中的 Gemini 也可協助摘要檔案與資料夾,但需要符合可用方案。
適合用在:Google Docs 會議紀錄、Google Drive 文件整理、Google Meet 會後資料。
4. NotebookLM:適合專案型會議與長期追蹤
NotebookLM 比較像是「專案知識庫」。你可以把會議紀錄、簡報、企劃書、訪談資料放進同一個 Notebook,之後再針對這些資料提問。Google 說明 NotebookLM 會根據你上傳或指定的來源回答問題,並提供來源引用。
適合用在:專案會議追蹤、多次會議整理、課程筆記、客戶訪談資料庫。
新手建議工作流
線上會議
平台逐字稿或摘要 → ChatGPT/Claude/Gemini 整理 → 人工檢查 → 寄出追蹤
若是長期專案,可把每次整理好的會議紀錄放進 NotebookLM,開下次會議前請它整理「前次決議、未完成事項、待確認問題」。
實體會議
手機錄音 → 轉成文字或整理重點 → ChatGPT/Claude/Gemini 整理 → 人工確認
如果沒有逐字稿,也可以會後用 Google Docs 語音輸入,自己口述會議重點。Google Docs 語音輸入需要在支援的瀏覽器中開啟文件,並確保電腦麥克風可正常使用。這比較適合「會後自己補充重點」,不建議直接當成多人會議的正式轉錄工具。
會議紀錄建議格式
新手可以先使用這個格式:
會議主題:
會議時間:
會議地點/會議連結:
主持人:
紀錄者:
與會者:
一、會議目的
簡短說明這場會議要解決什麼問題。
二、討論重點
用條列式整理主要討論內容。
三、會議決議
只放已經確認的結論,不放還在討論中的想法。
四、待辦事項
任務|負責人|截止日期|備註
整理第一版提案|Amy|5/10|提供給行銷部確認
五、待確認事項
列出尚未有答案、需要補資料或下次再討論的內容。
可直接複製的 AI Prompt
Prompt 1:整理正式會議紀錄
請根據以下會議逐字稿,整理成正式會議紀錄。
請包含:
1. 會議主題
2. 會議目的
3. 討論重點
4. 會議決議
5. 待辦事項
6. 待確認事項
7. 下次會議建議追蹤事項
待辦事項請用「任務/負責人/截止日期/備註」格式整理。
如果內容中沒有提到負責人或截止日期,請標示「待確認」。
請不要加入原文沒有提到的資訊。
請使用繁體中文,語氣正式、清楚,適合寄給團隊成員。
Prompt 2:整理主管版摘要
請將以下會議內容整理成主管可快速閱讀的摘要。
請用 300 字以內說明:
1. 本次會議重點
2. 已確認決議
3. 需要主管知道的風險或卡點
4. 接下來最重要的 3 個行動項目
請避免冗長細節,保留關鍵資訊即可。
Prompt 3:檢查會議紀錄
請幫我檢查以下會議紀錄是否完整。
請指出:
1. 是否有決議不清楚的地方
2. 是否有待辦事項缺少負責人
3. 是否有待辦事項缺少截止日期
4. 是否有需要再次確認的數字、日期、人名
5. 是否有語氣太口語、不適合寄給主管或客戶的句子
請提供修改建議。
新手最容易犯的 5 個錯誤
錯誤 1:把逐字稿當成會議紀錄
逐字稿只是原始材料,會議紀錄要整理出重點、決議與待辦。
錯誤 2:沒有區分「提議」和「決議」
有人提出建議,不代表會議已經同意。
錯誤 3:待辦事項沒有負責人
「下週整理報告」不夠清楚;「由 Kevin 於 5/10 前整理第一版報告」才方便追蹤。
錯誤 4:完全相信 AI 摘要
AI 可能漏掉反對意見,或誤解語氣與脈絡。
錯誤 5:忽略資料安全
不要把客戶資料、人事薪資、財務數字、公司策略或未公開資訊,直接上傳到未經公司核准的外部工具。
104學習小提醒
AI 可以幫你省下整理時間,但不能取代你的判斷。會議紀錄真正的價值,不是把所有人說過的話完整留下來,而是讓團隊會後能繼續推進。
對新手來說,最簡單的開始是建立一套固定流程:
錄下來 → 轉成文字 → 請 AI 整理 → 人工檢查 → 寄出追蹤
只要掌握這套流程,無論是線上會議還是實體會議,都能更快產出清楚、完整、可追蹤的會議紀錄。
看更多
1 0 4909 0
Mike Ku

Learn Code With Mike品牌創辦人

2021/10/21

Python多型(Polymorphism)實用教學
Q:什麼是抽象方法(Abstract Method)?
要使用抽像方法(Abstract Method)的類別首先要繼承ABC(Abstract Base Class)類別,接著在抽象方法上方加上@abstractmethod裝飾詞(Decorator),並且不會有實作內容,如下範例:
from abc import ABC, abstractmethod
class Login(ABC): # 登抽象入類別
@abstractmethod
def login(self):
pass
由於抽象方法(Abstract Method)是抽象的,所以只要有抽象方法(Abstract Method)的類別就稱為抽象類別,是無法建立物件的,必須透過繼承(Inheritance)的類別來進行抽象方法(Abstract Method)的實作,如下範例:
from abc import ABC, abstractmethod
class Login(ABC): # 登入抽象類別
@abstractmethod
def login(self):
pass
class FacebookLogin(Login): # Facebook登入機制
def login(self):
print("Facebook login implementation.")
fb = FacebookLogin()
fb.login()
所以,抽象方法(Abstract Method)通常應用於定義各類別的共同介面,讓未來要增加的需求功能,必須遵守共同的規則進行實作,來達到各類別擁有一致性的介面,不但好維護且易於擴充。
Q:什麼是多型(Polymorphism)?
顧名思義,就是同一個介面或方法(Method)可以有多個實作型態。
我們來延伸上面的例子,如果今天應用程式要增加Google及Twitter的登入機制,想必大家應該知道要怎麼做了吧,就是建立各自的類別(Class)繼承(Inheritance)Login抽象類別,接著實作其中的login抽象方法(Abstract Method),如下範例:
from abc import ABC, abstractmethod
class Login(ABC): # 登入抽象類別
@abstractmethod
def login(self):
pass
class FacebookLogin(Login): # Facebook登入機
def login(self):
print("Facebook login implementation.")
class GoogleLogin(Login): #Google登入
def login(self):
print("Google login implementation.")
class TwitterLogin(Login): #Twitter登入
def login(self):
print("Twitter login implementation.")
fb = FacebookLogin()
fb.login()
google = GoogleLogin()
google.login()
twitter = TwitterLogin()
twitter.login()
各位有沒有發現,來源端不同的類別物件(Object)呼叫同樣的方法(Method)時,卻可以有不同的實作方式,這也就是所謂的多型(Polymorphism)。
其中的原理,就是Python編譯器在執行期間(Runtime)看到三個實體類別(Class)皆繼承(Inheritance)了Login抽象類別,接著在物件(Object)呼叫login()方法(Method)時,Python編譯器則依據呼叫物件(Object)的實體類別(Class)來執行相應的類別實作。
Q:使用多型(Polymorphism)有什麼優點?
使用多型(Polymorphism)最大的優點就是易於擴充及降低類別間的相依性。從這兩個例子可以看到,不論未來要再增加新的登入機制或交通工具,都能非常容易的透過新增類別來進行擴充,並且有一致性的介面。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/01/python-polymorphism.html )網站觀看更多精彩內容。
看更多
1 0 995 0
你可能感興趣的教室