SlideShare a Scribd company logo
PPyytthhoonn 
PPrrooggrraammmmiinngg 
Johnson Hsu 
johnsonhsu@dsrt.biz
2 
@ 
大綱 
 Chapter 7 類別 
 Chapter 8 例外處理 
 Chapter 9 常用模組介紹
3 
@ 
Chapter 7 類別
4 
@ 
類別
 基本格式 
 類別內建屬性 
 建構元 
 方法 
 成員 
 類別變數 
 實例變數 
 實例變數內建屬性
5 
@ 
類別 –– 基本格式
class <classname>: 
“””document…. 
……………………””” 
statement…. 
class <classname>[(class,class…class)] 
“””document……. 
………………………..””” 
statement
6 
@ 
類別內建屬性
 格式: classname.內建屬性 
 __dict__:將內建屬性以Dictionary格式儲存 
 __doc__:取得class內所撰寫的說明文字 
 __name__:取得class自己的名稱 
 __module__:取得class來自哪個模組 
 __bases__:取得class繼承自哪些模組
7 
@ 
類別內建屬性 -- ____ddiicctt____ 
 將內建屬性以Dictionary格式儲存
8 
@ 
類別內建屬性 -- ____ddoocc____ 
 __doc__:取得class內所撰寫的說明文字
9 
@ 
類別內建屬性 -- ____nnaammee____ 
 __name__:取得class自己的名稱
10 
@ 
類別內建屬性
 __module__:取得class來自哪個模組
11 
@ 
類別內建屬性
 __bases__:取得class繼承自哪些模組
12 
@ 
建構元
 建構一個物件並賦予其屬性的方法 
 Overload __init__ method
13 
@ 
方法
 即函式
14 
@ 
成員
15 
@ 
類別變數
 透過類別直接存取 
 宣告在方法外
16 
@ 
實例變數
 格式: obj = class(arg1, arg2, arg3…argN)
17 
@ 
實例變數內建屬性
 格式: instance.內建屬性 
 __dict__:將instance內的屬性以Dict格式儲存 
 __class__:取得instance的所屬類別
18 
@ 
類別內建屬性 -- ____ddiicctt____ 
 將內建屬性以Dictionary格式儲存
19 
@ 
iinnssttaannccee..mmeetthhoodd((aarrgg11,, ……))如何運作
 Instance.method(arg..)  Class.method(instance, arg..)
20 
@ 
iinnssttaannccee..mmeetthhoodd((aarrgg11,, ……))如何運作
21 
@ 
類別方法的OOvveerrllooaaddiinngg 
 重寫類別內原來的方法 
 擴充類別內原來的方法
22 
@ 
類別方法的OOvveerrllooaaddiinngg 
 重寫類別內原來的方法
23 
@ 
類別方法的OOvveerrllooaaddiinngg 
 擴充類別內原來的方法
24 
@ 
類別的繼承
 多重繼承 
 多重繼承的順序 
 指定繼承哪個類別的方法
25 
@ 
類別的繼承 -- 多重繼承
 格式 class class_name(class1, 
class2….classN):
26 
@ 
類別的繼承 -- 多重繼承的順序
 如果繼承的集合成員,擁有相同方法,則該類別 
繼承類別方法的順序從左至右
27 
@ 
類別的繼承 -- 指定繼承哪個類別的
方法
 指定繼承哪個類別的方法
28 
@ 
類別的多型
 並沒有真正的多型 
 借由不訂引數判定該呼叫的函式達成
29 
@ 
類別的多型
30 
@ 
類別的封裝
 Python內所有的屬性與方法都是public 
 命名時以 ‘ _’ (一個底線)作為開頭, 被視為類 
別的內部 
屬性、方法 
 命名時以’ __’(兩個底線)作為開頭, 被視為類別 
的私有 
屬性、方法
31 
@ 
類別的封裝
32 
@ 
類別的名稱空間
 類別的所有屬性都儲存在該類別的名稱空間 
 若於類別內儲存一個全域變數的值, 當全域變數 
改變, 
類別將不會跟著改變
33 
@ 
類別變數與成員在實例變數的搜尋順
序
34 
@ 
類別變數與成員在實例變數的搜尋順
序 
Module Not Found
35 
@ 
類別變數與成員在實例變數的搜尋順
序 
Module Not Found
36 
@ 
類別變數與成員在實例變數的搜尋順
序 
1 
2
37 
@ 
類別內建方法
 __init__(self) 
 __str__(self) 
 __repr__(self) 
 __getattr__(self, name) 
 __setattr__(self, name, value) 
 __delattr__(self, name) 
 __del__(self) 
 __cmp__(self, other) 
 __hash__(self) 
 __nonzero__(self)
38 
@ 
類別內建方法
 __call__(self) 
 __getitem__(self, index) 
 __len__(self) 
 __add__(self, other) 
 __iadd__(self, other) 
 __sub__(self, other) 
 __isub__(self, other) 
 __mul__(self, other) 
 __imul__(self, other) 
 __div__(self, other) 
 __idiv__(self, other)
39 
@ 
類別內建方法
 __mod__(self, other) 
 __imod__(self, other) 
 __neg__(self) 
 __pos__(slef) 
 __abs__(self) 
 __inv__(self) 
 __Ishift__(self, other) 
 __iIshift__(self, other) 
 __rshift__(self, other) 
 __irshift__(self, other)
40 
@ 
類別內建方法
 __and__(self, other) 
 __isand__(self, other) 
 __or__(self, other) 
 __ior__(self, other) 
 __xor__(self, other) 
 __ixor__(self, other) 
 __not__(self, other) 
 __setitem__(self, index, value) 
 __delitem__(self,index) 
 __getslice__(self, index1, index2)
41 
@ 
類別內建方法
 __setslice__(self, index1, index2, list) 
 __delslice__(self, index1, index2)
42 
@ 
類別內建方法 -- ____iinniitt____((sseellff)) 
 類別建構元 
 可以利用不定引述的寫法,完成不同參數的建構 
元
43 
@ 
類別內建方法 -- ____ssttrr____((sseellff)) 
 設定當物件被指定為字串時,應該回傳的字串
44 
@ 
類別內建方法 -- ____ggeettaattttrr____((sseellff,, 
nnaammee))
45 
@ 
類別內建方法 –– 
____sseettaattttrr____((sseellff,, 
nnaammee,, vvaalluuee))
46 
@ 
類別內建方法 -- ____ddeellaattttrr____((sseellff,, 
nnaammee))
47 
@ 
類別內建方法 -- ____ddeell____((sseellff))
48 
@ 
類別內建方法 -- ____ddeell____((sseellff))
49 
@ 
類別內建方法 -- ____ccaallll____((sseellff))
50 
@ 
類別內建方法 -- ____ccaallll____((sseellff))
51 
@ 
類別內建方法 –– 
sseettiitteemm、
gg ee__ttiistteeetimmtem、__(ddseeellfl,ii ttienedmmex, value) 
 __getitem__(self,index) 
 __delitem__(self,index) 
類似 __setattr__、__getattr__、delattr,但其格 
式為 
__setitem__: A[‘key’] = c 
__getitem__: A[‘key’] 
__delitem__: del A[‘key’]
52 
@ 
類別內建方法 –– 
____ggeettsslliiccee____((sseellff,, iinnddeexx11,, 
iinn Sddtree =xx 2‘2a))bcdefg’ Str = Str[2:5] 
index1 index2
53 
@ 
類別內建方法 –– 
____sseettsslliiccee____((sseellff,, iinnddeexx11,, iinnddeexx22,, lliisstt))
54 
@ 
類別內建方法 –– 
____ddeellsslliiccee____((sseellff,, iinnddeexx11,, 
iinnddeexx22))
55 
@ 
Chapter 8 例外處理
56 
@ 
例外處理 –– 基本格式
try: 
statement…. 
statement… 
except: [excetion type[, instance of exception]]: 
statement… 
[else: 
statement…] 
[finally: 
statement…]
57 
@ 
例外處理
58 
@ 
例外處理
59 
@ 
例外處理
60 
@ 
例外處理 –– 例外實例變數的aarrggss屬
性 
Tuple
61 
@ 
例外處理 –– 忽略例外
62 
@ 
例外處理 –– 產生例外
格式: 
   1) raise class 
2) raise exception, single_arg 
3) raise exception, (arg1, arg2, arg3…) 
4) raise exception (arg1, arg2, ….)
63 
@ 
例外處理 –– 產生例外
64 
@ 
例外處理 –– 自訂例外
65 
@ 
例外處理 –– 自訂例外
66 
@ 
Chapter 9 常用模組介紹
67 
@ 
SSttrriinngg模組 –– 尋找字串的位置
68 
@ 
SSttrriinngg模組 –– 搜尋並取代字串
69 
@ 
SSttrriinngg模組 –– 刪除換行字元
70 
@ 
SSttrriinngg模組 –– 英文字母2266個常數
71 
@ 
SSttrriinngg模組 –– 將字串轉為小寫
72 
@ 
SSttrriinngg模組 –– 指定分隔字元拆解此
字串
73 
@ 
SSttrriinngg模組 –– sspplliitt預設分隔字元為
空白
74 
@ 
SSttrriinngg模組 –– 將lliisstt內的集合組成字
串 
並且指定
分隔字元
75 
@ 
SSttrriinngg模組 –– 將lliisstt內的集合組成字
串
76 
@ 
SSttrriinngg模組 –– 另一種取代方式
77 
@ 
SSttrriinngg模組 –– 轉型
78 
@ 
ssyyss模組 –– 系統相關資訊
79 
@ 
ssyyss模組 –– 模組的搜尋路徑
80 
@ 
ssyyss模組 –– 新增搜尋環境到目前環境
中
81 
@ 
ssyyss模組 –– 取得目前載入的模組
82 
@ 
ssyyss模組 –– 取得執行時的參數
83 
@ 
ssyyss模組 –– 將輸入參數存成ddiicctt物
件
84 
@ 
ooss模組 –– 取得程式於系統的
pprroocceessss iidd
85 
@ 
ooss模組 –– 取得目前路徑、切換目錄
86 
@ 
ooss模組 –– 路徑之間分隔字元、目錄的
分隔字元、上層目錄、目前目錄、換行
字元
87 
@ 
ooss模組 –– 判斷是否為資料夾、檔案
、取得檔案大小、判斷是否存在
88 
@ 
ooss模組 –– 分離檔案名稱與路徑並儲
存成ttuuppllee
89 
@ 
ooss模組 –– 組合路徑與檔案
90 
@ 
ooss模組 –– 各別取出檔案路徑與檔案
名稱
91 
@ 
ooss模組 –– 取得副檔名
92 
@ 
ooss模組 –– 取得絕對路徑
93 
@ 
ooss模組 –– 執行系統sshheellll指令
94 
@ 
ooss模組 –– 取得環境變數
95 
@ 
ooss模組 –– 將路徑隔別取出來
96 
@ 
ooss模組 –– 取得指定路徑的檔案、資
料夾
97 
@ 
ooss模組 –– 取得目錄下所有檔案與資
料夾
98 
@ 
ooss模組 ––取得目錄下所有檔案與資料
夾
99 
@ 
ooss模組 ––取得目錄下所有檔案與資料
夾
100 
@ 
ooss模組 ––取得目錄下所有檔案與資料
夾
101 
@ 
SSoocckkeett模組 –– TTCCPP 範例
 建立socket到指定的本地主機ip, port位置 
 設定最大連線數 
 無限回圈, 接受連線 
 傳送字串給連線端 
 關閉socket
102 
@ 
SSoocckkeett模組 –– UUDDPP 範例
 建立socket到指定的本地主機ip, port位置 
 設定接收訊息的資料量大小 
 取得資料, 與連線端位置
103 
@ 
uurrlllliibb模組 –– 取得hheeaaddeerrss 
 開啟指定網頁位置 
 讀入整個網頁 
 利用該物件取得header
104 
@ 
uurrlllliibb模組 –– 特殊字串編碼
 將字串傳入quote函式
105 
@ 
uurrlllliibb模組 –– 特殊字串編碼
 將字串傳入quote函式,將對於URL而言屬於特 
殊字 
元的部分進行編碼
106 
@ 
uurrlllliibb模組 –– 反解編碼過後的字串
 將重新編碼過後的字串利用unquote解回字串原 
貌
107 
@ 
uurrllppaarrssee模組 –– 解析UURRLL 
 透過urlparse將傳入的URL字串,分解成 
addressing scheme、netword location 、path 、 
parameters 、query 、fragment identifier
108 
@ 
uurrllppaarrssee模組 –– 反解析UURRLL 
 將要組成的元素以tuple方式儲存 
 呼叫urlunparse反組成一個完整URL
109 
@ 
TTeellnneett模組
 開啟連線 
 登入 
 執行命令
110 
@ 
FTTPP模組
 開啟連線 
 登入 
 執行命令

More Related Content

What's hot (10)

PPT
Hibernate查询
llying
 
PDF
Row Set初步学习V1.1
Zianed Hou
 
PDF
Jni攻略之八――操作对象的构造方法
yiditushe
 
PPTX
W06 資料聚類:分群 (blog)
Yung-Ting Chen
 
PDF
進階主題
Justin Lin
 
PDF
CH17:反射與類別載入器
Justin Lin
 
PPTX
My sql explain & select
Ming-Ying Wu
 
PDF
由一个简单的程序谈起――之五(精华)
yiditushe
 
PDF
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
 
Hibernate查询
llying
 
Row Set初步学习V1.1
Zianed Hou
 
Jni攻略之八――操作对象的构造方法
yiditushe
 
W06 資料聚類:分群 (blog)
Yung-Ting Chen
 
進階主題
Justin Lin
 
CH17:反射與類別載入器
Justin Lin
 
My sql explain & select
Ming-Ying Wu
 
由一个简单的程序谈起――之五(精华)
yiditushe
 
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
 

Similar to Programming python - part 2 (20)

PDF
Programming python - part 1
Che-Cheng Hsu
 
PDF
Python 2 - 快速簡介
Cheyin L
 
PDF
Ch10
Alisha Smile
 
PDF
Ch10 教學
hungchiayang1
 
PDF
從模組到類別
Justin Lin
 
PPTX
流程語法與函式
Justin Lin
 
PPTX
Python入門:5大概念初心者必備
Derek Lee
 
PDF
4. 流程語法與函式
Justin Lin
 
PPTX
Python入門:5大概念初心者必備 2021/11/18
Derek Lee
 
PDF
3.型態與運算子
Justin Lin
 
PDF
Learn python 1
Chia-Hao Tsai
 
PPTX
從模組到類別
Justin Lin
 
PDF
5. 從模組到類別
Justin Lin
 
PPTX
Y3CDS - Python class 01
Ting-You Xu
 
PPTX
型態與運算子
Justin Lin
 
ODP
Ruby程式語言入門導覽
Mu-Fan Teng
 
PPTX
TQC+ 程式語言 Python 05:函式
neochen2701
 
ODP
Op 20090411
guestc98914
 
PDF
型態與運算子
Justin Lin
 
PPTX
Python 入門
Andy Yao
 
Programming python - part 1
Che-Cheng Hsu
 
Python 2 - 快速簡介
Cheyin L
 
Ch10 教學
hungchiayang1
 
從模組到類別
Justin Lin
 
流程語法與函式
Justin Lin
 
Python入門:5大概念初心者必備
Derek Lee
 
4. 流程語法與函式
Justin Lin
 
Python入門:5大概念初心者必備 2021/11/18
Derek Lee
 
3.型態與運算子
Justin Lin
 
Learn python 1
Chia-Hao Tsai
 
從模組到類別
Justin Lin
 
5. 從模組到類別
Justin Lin
 
Y3CDS - Python class 01
Ting-You Xu
 
型態與運算子
Justin Lin
 
Ruby程式語言入門導覽
Mu-Fan Teng
 
TQC+ 程式語言 Python 05:函式
neochen2701
 
Op 20090411
guestc98914
 
型態與運算子
Justin Lin
 
Python 入門
Andy Yao
 
Ad

Programming python - part 2