Python面向對象(4)

本文標識 : Python_13

本文編輯 : Jack 風

編程工具 : Anaconda、Pycharm

閱讀時長 : 6分鐘

1、異常的傳遞

1.1、try嵌套

  • 首先從 test.txt 文件中讀取到資訊
  • ^c 關閉文件
  • 沒有這個文件
  • 最後的finally

1.2、函數嵌套調用中

  • 如果try嵌套,那麼如果裡面的try沒有捕獲到這個異常,那麼外面的try會接收到這個異常,然後進行處理,如果外邊的try依然沒有捕獲到,那麼再進行傳遞。。。
  • 如果一個異常是在一個函數中產生的,例如函數A—->函數B—->函數C,而異常是在函數C中產生的,那麼如果函數C中沒有對這個異常進行處理,那麼這個異常會傳遞到函數B中,如果函數B有異常處理那麼就會按照函數B的處理方式進行執行;如果函數B也沒有異常處理,那麼這個異常會繼續傳遞,以此類推。。。如果所有的函數都沒有處理,那麼此時就會進行異常的默認處理,即通常見到的那樣
  • 注意觀察上圖中,當調用test3函數時,在test1函數內部產生了異常,此異常被傳遞到test3函數中完成了異常處理,而當異常處理完後,並沒有返回到函數test1中進行執行,而是在函數test3中繼續執行

2、拋出自定義的異常

可以用`raise語句來引發一個異常。異常/錯誤對象必須有一個名字,且它們應是Error或Exception類的子類

以上程式中,關於程式碼#super().__init__()的說明 這一行程式碼,可以調用也可以不調用,建議調用,因為__init__方法往往是用來對創建完的對象進行初始化工作,如果在子類中重寫了父類的__init__方法,即意味著父類中的很多初始化工作沒有做,這樣就不保證程式的穩定了,所以在以後的開發中,如果重寫了父類的__init__方法,最好是先調用父類的這個方法,然後再添加自己的功能

3、異常處理中拋出異常

4、模組介紹

4.1、模組

說的通俗點:模組就好比是工具包,要想使用這個工具包中的工具(就好比函數),就需要導入這個模組

4.2、import

在python中主要是 用關鍵字,import 來引入某個模組,

在調用math模組中的函數時,必須這樣引用:

模組名.函數名    import math    #這樣會報錯  print sqrt(2)    #這樣才能正確輸出結果  print math.sqrt(2)

4.3、from…import

Python的from語句讓你從模組中導入一個指定的部分到當前命名空間中

語法如下:

from modname import name1[, name2[, ... nameN]]

例如,要導入模組fib的fibonacci函數,使用如下語句:

from fib import fibonacci

注意

  • 不會把整個fib模組導入到當前的命名空間中,它只會將fib里的fibonacci單個引入

4.4、from … import *

把一個模組的所有內容全都導入到當前的命名空間也是可行的,只需使用如下聲明:

from modname import *

注意

  • 這提供了一個簡單的方法來導入一個模組中的所有項目。然而這種聲明不該被過多地使用。

4.5、 as

4.6、定位模組

當你導入一個模組,Python解析器對模組位置的搜索順序是:

  1. 當前目錄
  2. 如果不在當前目錄,Python則搜索在shell變數PYTHONPATH下的每個目錄。
  3. 如果都找不到,Python會察看默認路徑。UNIX下,默認路徑一般為/usr/local/lib/python/
  4. 模組搜索路徑存儲在system模組的sys.path變數中。變數里包含當前目錄,PYTHONPATH和由安裝過程決定的默認目錄。

5、模組製作

5.1、定義自己的模組

在Python中,每個Python文件都可以作為一個模組,模組的名字就是文件的名字。比如有這樣一個文件test.py,在test.py中定義了函數add

#test.py  def add(a,b):      return a+b

5.2、調用自己定義的模組

那麼在其他文件中就可以先import test,然後通過test.add(a,b)來調用了,當然也可以通過from test import add來引入

#test1.py  import test    result = test.add(66,22)  print(result)

5.3、測試模組

在實際開中,當一個開發人員編寫完一個模組後,為了讓模組能夠在項目中達到想要的效果,這個開發人員會自行在py文件中添加一些測試資訊,例如:

#test.py  def add(a,b):  return a+b    # 用來進行測試  ret = add(123,543)  print('int test.py file,,,,123+543=%d'%ret)

如果此時,在其他py文件中引入了此文件的話,想想看,測試的那段程式碼是否也會執行呢!

#test1.py  import test    result = test.add(66,22)  print(result)

6、模組中的_all_

6.1、沒有

6.2、有

7、使用Pip安裝模組

pip 是 python 自帶的一個軟體,相當於手機里的應用市場,可以用來安裝、卸載、搜索 python 的常見模組。 直接輸入 pip 後回車,可以查看 pip 命令的所有可用參數。

7.1、安裝模組

在命令行執行

pip install 模組名

7.2、卸載模組

在命令行執行

pip uninstall 模組名

7.3、搜索模組

在命令行執行

pip search 模組名

Python面向對象(1)

Python面向對象(2)

Python面向對象(3)