programming python - part 2
TRANSCRIPT
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
@ 類別內建屬性 類別內建屬性 -- __dict__-- __dict__
將內建屬性以 Dictionary格式儲存
8
@ 類別內建屬性 類別內建屬性 -- __doc__-- __doc__
__doc__:取得 class內所撰寫的說明文字
9
@ 類別內建屬性 類別內建屬性 -- __name__-- __name__
__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
@ 類別內建屬性 類別內建屬性 -- __dict__-- __dict__
將內建屬性以 Dictionary格式儲存
19
@instance.method(arg1, …)instance.method(arg1, …)如何運作如何運作
Instance.method(arg..) Class.method(instance, arg..)
20
@instance.method(arg1, …)instance.method(arg1, …)如何運作如何運作
21
@類別方法的類別方法的 OverloadingOverloading
重寫類別內原來的方法
擴充類別內原來的方法
22
@類別方法的類別方法的 OverloadingOverloading
重寫類別內原來的方法
23
@類別方法的類別方法的 OverloadingOverloading
擴充類別內原來的方法
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
@ 類別內建方法 類別內建方法 -- __init__(self)-- __init__(self)
類別建構元
可以利用不定引述的寫法,完成不同參數的建構元
43
@ 類別內建方法 類別內建方法 -- __str__(self)-- __str__(self)
設定當物件被指定為字串時,應該回傳的字串
44
@ 類別內建方法 類別內建方法 -- __getattr__(self, -- __getattr__(self,
name)name)
45
@ – 類別內建方法 – 類別內建方法
__setattr__(self, __setattr__(self, name, value)name, value)
46
@ 類別內建方法 類別內建方法 -- __delattr__(self, -- __delattr__(self,
name)name)
47
@ 類別內建方法 類別內建方法 -- __del__(self)-- __del__(self)
48
@ 類別內建方法 類別內建方法 -- __del__(self)-- __del__(self)
49
@ 類別內建方法 類別內建方法 -- __call__(self)-- __call__(self)
50
@ 類別內建方法 類別內建方法 -- __call__(self)-- __call__(self)
51
@ – 類別內建方法 – 類別內建方法
setitemsetitem、、getitemgetitem、、 delitemdelitem __setitem__(self, index, value)
__getitem__(self,index)
__delitem__(self,index)
類似 __setattr__、 __getattr__、 delattr,但其格
式為
__setitem__: A[‘key’] = c
__getitem__: A[‘key’]
__delitem__: del A[‘key’]
52
@ – 類別內建方法 – 類別內建方法
__getslice__(self, index1, __getslice__(self, index1, index2)index2) Str = ‘abcdefg’ Str = Str[2:5]
index1 index2
53
@ – 類別內建方法 – 類別內建方法
__setslice__(self, index1, index2, list)__setslice__(self, index1, index2, list)
54
@ – 類別內建方法 – 類別內建方法
__delslice__(self, index1, __delslice__(self, index1, index2)index2)
55
@
Chapter 8 例外處理
56
@ – 例外處理 基本格式 – 例外處理 基本格式
try:
statement….
statement…
except: [excetion type[, instance of exception]]:
statement…
[else:
statement…]
[finally:
statement…]
57
@例外處理例外處理
58
@例外處理例外處理
59
@例外處理例外處理
60
@ – 例外處理 例外實例變數的 – 例外處理 例外實例變數的 argsargs屬屬
性性
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
@StringString – 模組 尋找字串的位置 – 模組 尋找字串的位置
68
@StringString – 模組 搜尋並取代字串 – 模組 搜尋並取代字串
69
@StringString – 模組 刪除換行字元 – 模組 刪除換行字元
70
@StringString – 模組 英文字母 – 模組 英文字母 2626個常數個常數
71
@StringString – 模組 將字串轉為小寫 – 模組 將字串轉為小寫
72
@StringString – 模組 指定分隔字元拆解此 – 模組 指定分隔字元拆解此字串字串
73
@StringString – 模組 – 模組 splitsplit預設分隔字元為預設分隔字元為空白空白
74
@StringString – 模組 將 – 模組 將 listlist內的集合組成字內的集合組成字串串 並且指定 並且指定分隔字元分隔字元
75
@StringString – 模組 將 – 模組 將 listlist內的集合組成字內的集合組成字串串
76
@StringString – 模組 另一種取代方式 – 模組 另一種取代方式
77
@StringString – 模組 轉型 – 模組 轉型
78
@syssys – 模組 系統相關資訊 – 模組 系統相關資訊
79
@syssys – 模組 模組的搜尋路徑 – 模組 模組的搜尋路徑
80
@syssys – 模組 新增搜尋環境到目前環境 – 模組 新增搜尋環境到目前環境中中
81
@syssys – 模組 取得目前載入的模組 – 模組 取得目前載入的模組
82
@syssys – 模組 取得執行時的參數 – 模組 取得執行時的參數
83
@syssys – 模組 將輸入參數存成 – 模組 將輸入參數存成 dictdict物物件件
84
@osos – 模組 取得程式於系統的 – 模組 取得程式於系統的process idprocess id
85
@osos – 模組 取得目前路徑、切換目錄 – 模組 取得目前路徑、切換目錄
86
@osos – 模組 – 模組 路徑之間分隔字元、目錄的路徑之間分隔字元、目錄的
分隔字元、上層目錄、目前目錄、換行分隔字元、上層目錄、目前目錄、換行
字元字元
87
@osos – 模組 判斷是否為資料夾、檔案 – 模組 判斷是否為資料夾、檔案、取得檔案大小、判斷是否存在、取得檔案大小、判斷是否存在
88
@osos – 模組 分離檔案名稱與路徑並儲 – 模組 分離檔案名稱與路徑並儲存成存成 tupletuple
89
@osos – 模組 組合路徑與檔案 – 模組 組合路徑與檔案
90
@osos – 模組 各別取出檔案路徑與檔案 – 模組 各別取出檔案路徑與檔案名稱名稱
91
@osos – 模組 取得副檔名 – 模組 取得副檔名
92
@osos – 模組 取得絕對路徑 – 模組 取得絕對路徑
93
@osos – 模組 執行系統 – 模組 執行系統 shellshell指令指令
94
@osos – 模組 取得環境變數 – 模組 取得環境變數
95
@osos – 模組 將路徑隔別取出來 – 模組 將路徑隔別取出來
96
@osos – 模組 取得指定路徑的檔案、資 – 模組 取得指定路徑的檔案、資料夾料夾
97
@osos – 模組 取得目錄下所有檔案與資 – 模組 取得目錄下所有檔案與資料夾料夾
98
@osos –模組 取得目錄下所有檔案與資料 –模組 取得目錄下所有檔案與資料夾夾
99
@osos –模組 取得目錄下所有檔案與資料 –模組 取得目錄下所有檔案與資料夾夾
100
@osos –模組 取得目錄下所有檔案與資料 –模組 取得目錄下所有檔案與資料夾夾
101
@SocketSocket – 模組 – 模組 TCP TCP 範例範例
建立 socket到指定的本地主機 ip, port位置
設定最大連線數
無限回圈 , 接受連線
傳送字串給連線端
關閉 socket
102
@SocketSocket – 模組 – 模組 UDP UDP 範例範例
建立 socket到指定的本地主機 ip, port位置
設定接收訊息的資料量大小
取得資料 , 與連線端位置
103
@urlliburllib – 模組 取得 – 模組 取得 headersheaders
開啟指定網頁位置
讀入整個網頁
利用該物件取得 header
104
@urlliburllib – 模組 特殊字串編碼 – 模組 特殊字串編碼
將字串傳入 quote函式
105
@urlliburllib – 模組 特殊字串編碼 – 模組 特殊字串編碼
將字串傳入 quote函式,將對於 URL而言屬於特
殊字
元的部分進行編碼
106
@urlliburllib – 模組 反解編碼過後的字串 – 模組 反解編碼過後的字串
將重新編碼過後的字串利用 unquote解回字串原
貌
107
@urlparseurlparse – 模組 解析 – 模組 解析 URLURL
透過 urlparse將傳入的 URL字串,分解成
addressing scheme、 netword location 、 path 、
parameters 、 query 、 fragment identifier
108
@urlparseurlparse – 模組 反解析 – 模組 反解析 URLURL
將要組成的元素以 tuple方式儲存
呼叫 urlunparse反組成一個完整 URL
109
@TelnetTelnet模組模組
開啟連線
登入
執行命令
110
@FTPFTP模組模組
開啟連線
登入
執行命令