Successfully reported this slideshow.
Your SlideShare is downloading. ×

Programming python - part 2

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Java物件導向
Java物件導向
Loading in …3
×

Check these out next

1 of 110 Ad

More Related Content

Advertisement

Recently uploaded (20)

Programming python - part 2

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

×