技術問答
技術文章
iT 徵才
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 11 屆 iThome 鐵人賽
DAY
27
0
自我挑戰組
從不懂,到玩上手的Python語言
系列 第
27
篇
Day27-物件導向設計 :封裝部分
11th鐵人賽
岳岳
團隊
CPR爆肝初心者
2019-10-13 19:49:38
2523 瀏覽
分享至
學習目標
定義一個空類別
類別的底層機制
定義一個一般類別
空類別的「定義」與「實體化」
定義類別(Define a Class)
實體化(Instantiation)
範例原始碼與執行結果
原始碼
執行結果
類別/物件底層記憶體分佈
驗證類別/物件底層記憶體分佈
定義一個類別的方法
先定義一個類別有哪些資料然後定義這些資料要有哪些函數去操縱然後將資料
與函數包起來並且在主程式使用包裝好的類別
為何函數第一個參數是 self
為了區別「類別」與「物件」內的變數
如何取出 name 與 age 的值
使用「物件名稱.成員名稱」語法
屬性(物件內的變數): robert.name、robert.age
方法(物件內的函數): robert.setData(…)
可以直接寫值到 name 或 age 上嗎?
可以!!
語法: 物件變數名稱.屬性名稱 = 新值
範例: robert.age= 50
老手常常把變數宣告省略
原因
Python 在指定初值時,遇到變數不存在會自動產生變數後再給初值。
省略的好處:少寫幾行系統效率稍好
不省略的好處:程式碼容易了解
重點整理
定義一個類別的語法
語法:class 類別名稱:
範例:class Person:
實體化一個類別的語法
語法:物件變數名稱 體化個類別的語法
範例:robert Person()
類別底層機制
類別自己有自己的記憶體,內含所有宣告的變數與函數,作為拷貝用的範本
每實體化一個物件 = 將類別記憶體完整拷貝一份
物件導向類別的寫作方法
定義變數 → 定義操縱變數的函數 → 將變數、函數包起來
self:代表物件「自己」,可以用來抓取包含於其中的變數與函數
類別的函數(方法)第一參數一定是 self。但呼叫時不需寫 self
老手常常省略變數宣告,因為 Python 會自動產生
留言
追蹤
檢舉
上一篇
DAY26-物件導向設計
下一篇
Day28-物件導向設計封裝部分:建構函數(Constructor)
系列文
從不懂,到玩上手的Python語言
共
30
篇
目錄
RSS系列文
訂閱系列文
10
人訂閱
26
DAY26-物件導向設計
27
Day27-物件導向設計 :封裝部分
28
Day28-物件導向設計封裝部分:建構函數(Constructor)
29
Day29- 例外處理 (Exception)
30
Day30-總結30 天
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19856
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
Gem如何找到該功能?!我是Gemini付費使用者
中華電信光纜當骨幹...SWminigbic無法正常使用
我在做 packet tracer 的題目,想請問一下該怎麼做
dhcp 在client 端機碼設定的問題
照片破圖或是有損壞,如何修復?
Windows DHCP Server IP保留問題
.net6 的mvc架構 如何連 report server
新電腦安裝鼎新 Workflow ERP iGP的 Access violation
熱門回答
中華電信光纜當骨幹...SWminigbic無法正常使用
我在做 packet tracer 的題目,想請問一下該怎麼做
dhcp 在client 端機碼設定的問題
照片破圖或是有損壞,如何修復?
熱門文章
Agentic AI 開發實戰:我是如何設計 “Code + LLM” 混合架構,解決 AI品質不穩的問題?
【C++學習筆記】01《從零學習C++,跟世界打招呼吧!》
讓人受益終身的 9 種數據分析思維
數位轉型是什麼?從定義、三階段到成功案例一次看懂
Angular 後台系統 i18n 套件比較:Angular 內建 i18n vs ngx-translate vs ngx-atomic-i18n
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}