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 957 0

熱門精選

104學習精靈

產品

9小時前

【最新】2024年11月AI課程熱門排行榜TOP 10:最受歡迎的AI學習課程推薦
從AI基礎知識到應用,市面上提供了各種AI學習課程:AI線上課程、AI實體課程,無論您是初學者還是專業人士,都可以找到適合自己的AI課程。本文將為您揭曉2024年11月最受歡迎的AI課程排行榜,幫助您輕鬆找到優質的AI學習資源,快速掌握AI技能。
本篇透過從104課程中心的用戶學習大數據,整理出大家都在搜尋的TOP 10 熱門課程;可透過排行榜,找到你所需的學習內容,增進職場的職能成長,加強自我競爭力,打造你的職涯藍圖!
第1名。ChatGPT x Excel | 職場必學商務數據分析術
講師將以系統化教學法,教授數據分析常用情境,搭上火紅 ChatGPT ,步驟式實戰,能隨學即用,讓你知道如何在工作中運用所學到的技能!
第2名。AI資料科學家【 聽課全系列 】
「基礎思維」AI資料科學的新朋友,必定要了解一下人工智慧的歷史里程碑與事件,從這裡出發,您也能與不熟悉這個領域的朋友侃侃而談地分享您所學領域的轉變與趨勢,而初學者免不了學習的十字路口,不知道該從哪個部分開始學習AI,這裡也會給您適合適當的指引。常常被混的網頁爬蟲與ETL您真的認識並了解嗎?聽聽看TibaMe的講師們怎麼說吧!
第3名。生成式AI應用速成:商業溝通師-數位行銷課(12/21開課)
🔴報名截止日:2024/12/8🔴
你可以學到
🌟AI 行銷創作零基礎也能秒上手|不需任何行銷經驗,快速學會生成式 AI 工具,輕鬆打造吸睛行銷素材。
🌟行銷策略效果爆發式成長| 有效運用 AI 提升執行力,讓行銷效率飆升、策略效果倍增。
🌟精準鎖定目標受眾,打中痛點| 用 AI 技術解析消費者行為,精準掌握市場趨勢,一次抓住受眾需求。
🌟品牌形象全面升級| AI 創造獨特行銷風格,讓品牌成為目光焦點,迅速在市場中脫穎而出。
第4名。2小時輕鬆學AI | 基礎觀念與應用
從資料科學的基礎觀念談起、商業智慧、資料探勘、影像辨識等技術應用,最後再討論企業實際導入人工智慧所需的相關流程。
第5名。生成式AI應用速成:創作詠唱師-影音創作課(11/30開課)
🔴報名截止日:2024/11/17🔴
你可以學到
🌟虛擬角色打造 | 從角色設計、到AI影片製作,一站式打造你的專屬虛擬網紅。
🌟短影音製作 | 運用AI工具,快速生成各種特效、濾鏡,製作出精緻的短影音。
🌟內容行銷 | 學習如何利用AI工具製作出更能觸動觀眾的內容。
第6名。生成式AI工具應用實戰 (線上直播課程)
你可以學到
行銷廣告文案+社群策略及內容+SEO生成+BingAI繪圖,一次學會生成式AI工具應用!
本課程「生成式AI工具應用」旨在教導學員如何利用最先進的生成式AI工具,特別是ChatGPT和微軟Bing AI繪圖工具,來提升行銷文案、社群媒體內容、SEO優化、廣告文案創作以及內容行銷的效率和成效。
第7名。生成式AI應用速成:創作詠唱師-繪圖設計課(12/21開課)
🔴報名截止日:2024/12/8🔴
你可以學到
🌟成為AI設計高手| 從設計小白變身AI設計達人,自信接下各種設計挑戰。
🌟擴大職涯發展| 掌握AI設計技能,提升職場競爭力,開拓更多職涯發展機會。
🌟節省設計成本| 減少外包設計費用,提高工作效率,為企業創造更多價值。
🌟實現創意無限| 突破傳統設計框架,用AI工具打造出獨一無二的視覺作品。
第8名。AI應用時代|從邏輯思維到文字溝通,從職場複利到高效生活
藉由AI助手的力量,更高效地完成商務工作、激發靈感。也透過AI協助經營社群,包含工作行程、日常旅遊、飲食規劃等,提高短影音規劃的效率,進而產出斜槓複利。
第9名。一次搞懂 ChatGPT 工作法 | 5分鐘看懂,立即上手 AI 應用觀念!
5分鐘輕巧學:圖解式影音 X 25應用情境 X 30組AI神器
第10名。AI x 產品企劃(產品開發)實務應用班
你可以學到
往在產品企劃及開發上,所面臨到的難以解決的疑難問題,在未來都有機會利用AI工具進一步改善,取得更有效的解決方案。
本課程將教會您如何快速掌握AI在商業分析、創意生成、行銷文案、用戶旅程設計與消費者行為洞察中的應用,並了解如何將這些工具應用於產品企劃流程中。
更多AI課程推薦:
1 0 598 0
學習精靈

07/24 00:00

2052 46
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 550 0
學習精靈

11/13 00:00

17 1

推薦給你

知識貓星球

喵星人

13小時前

產品經理(PM)如何判斷需求的競爭價值?分析競品功能和市場趨勢的步驟
競爭分析在產品管理中扮演重要角色,透過評估競品功能和市場趨勢,產品經理能有效判斷需求的競爭價值。藉由分析優勢、差異化機會及市場需求變化,可確保產品聚焦在提升競爭力和避免競爭劣勢的方向上。
競爭分析能幫助產品經理了解市場上其他產品的功能及優勢,以判斷自身產品需求是否具有競爭價值。以下是分析競品功能和市場趨勢的具體步驟:
1. 識別競品
- 直接競爭對手:與自身產品同類、針對相同目標市場的產品。例如,其他同類型的SaaS軟體或工具。
- 間接競爭對手:可能滿足相似需求,但並非完全同類的產品。例如,若為時間管理工具,競爭者可能包括提供類似功能的生產力應用。
2. 分析競品功能
- 列出核心功能:觀察競品的主要功能,並記錄每個功能的細節、設計、操作流程。可以建立一個功能矩陣表來進行比對。
- 確認創新或獨特功能:看看競品中是否有特別創新的功能或設計,並評估這些功能是否真實解決了用戶痛點。這有助於判斷是否需要考慮相似的需求。
- 功能成熟度:分析競品各功能的開發成熟度。若競品某一功能仍處於測試或試用階段,可能反映了需求仍待驗證。
3. 分析市場趨勢
- 行業趨勢報告:閱讀市場分析報告(例如Gartner、Forrester等),了解行業發展方向和新興技術,並判斷某些需求是否與市場趨勢一致。
- 用戶行為趨勢:觀察目標用戶的需求變化,例如用戶偏好移動端還是網頁端操作?是否重視隱私和數據安全?此類趨勢會影響功能優先順序。
- 競品動態:定期關注競品更新、功能發佈或併購等訊息,了解他們的發展方向。這有助於判斷自身產品需求是否具有持續競爭力,或是否需要調整。
4. 評估該需求的競爭價值
- 競品缺失的機會:如果競品中有用戶需求未被充分滿足,可以考慮優先實現此類需求,以吸引用戶。
- 差異化策略:基於競品功能,尋找可以差異化的機會。若競品重視A功能,可能自身可強化B功能或推出更優化的A功能。
- 避免劣勢:若競品推出的功能深受市場認可,且解決了用戶核心痛點,則需考慮相應的需求,以避免劣勢。
這種競爭分析能幫助產品經理在開發需求時有更強的市場導向,既提升產品競爭力,也減少資源浪費。
0 0 337 0
你可能感興趣的教室