python基礎(12)-包的導入&異常處理

包的導入

幾種導入方式

  • import 包名

    1 import time
    2 time.time()
  • import 包名,包名

    1 import time,sys
    2 time.time()
    3 sys.path
  • from 包名 import 模塊名

    1 from time import time
    2 time()
  • from 包名 import *

    導入指定包下全部模塊python

    1 from time import *
    2 time() 

    __all__暴露指定屬性spa

    test.py:code

    1 __all__ = ['func1']
    2 
    3 
    4 def func1():
    5     print('from func1')
    6 
    7 
    8 def func2():
    9     print('from func2')
    1 from test import *
    2 
    3 func1()
    4 func2()  # NameError: name 'func2' is not defined
    5 
    6 # 只能訪問到導入原文件中__all__中指定的屬性

導入時的查找順序

  1. python內部會先在sys.modules裏面查看是否包含要導入的包\模塊,若是有,就直接導入引用
  2. 若是第1步沒有找到,python會在sys.path包含的路徑下繼續尋找要導入的模塊名.若是有,就導入,沒有就報錯.(pycharm會默認把項目路徑加入到sys.path])

異常處理

1 try:
2     ret = int(input('number >>>'))  # 'a'
3     print(ret * '*')
4 except ValueError:  # 輸入a時轉int失敗 throw ValueError
5     print('輸入的數據類型有誤')
6 except Exception:
7     print('會捕獲任何異常')
8 else:
9     print('沒有異常的時候執行else中的代碼')
相關文章
相關標籤/搜索