python學習之路7

1、模塊python

  定義:模塊就是實現了某個功能的代碼集合,一個模塊能夠定義函數,類和變量。模塊還能夠包括可運行的代碼。本質就是.py結尾的python文件。app

  優勢:代碼重用,可維護性高函數

  語法:ui

  導入單一模塊:spa

1 import module_name

  導入多個模塊code

import module_name1,module_name2,......

  調用符號:對象

import sys
print(sys.path)

  模塊與文件關係:一個.py文件即一個模塊,反之亦然。blog

1 對於一個模塊test有以下定義:
2 
3 模塊的文件名:test.py
4 模塊名:test
5 模塊導入:import test

 

2、模塊的名稱空間(做用域)作用域

  定義:名稱空間就是一個從名稱到對象的關係映射,每一個模塊都定義了本身的名稱空間,即每一個模塊有本身獨立的做用域。pycharm

  分類:python程序在運行時具備三個名稱空間,內建(__builtin__模塊),全局,局部,python解釋器先加載內建名稱空間,後加載全局名稱空間,最後加載局部名稱空間。

  名稱空間與做用域關係:從內往外找,以較內層做用域爲準

  例如

  module_a.py

1 x=1
2 
3 def test():
4     print('from the module module_a')

  module_b.py

1 x=2
2 
3 def test():
4     print('from the module module_b')

  test.py

 1 import module_a
 2 import module_b
 3 
 4 print(module_a.x)
 5 print(module_b.x)
 6 print(module_a.x+module_b.x)
 7 module_a.test()
 8 module_b.test()
 9 
10 運行結果:
11 1
12 2
13 3
14 from the module module_a
15 from the module module_b

  例如

  module_a.py

1 x=1
2 
3 def test():
4     print('from the module module_a',x)

  test.py

 1 import module_a
 2 
 3 x=2
 4 print(module_a.x)
 5 module_a.x=10
 6 print(module_a.x)
 7 
 8 #運行結果
 9 1
10 10

 

3、模塊的搜索路徑和路徑搜索

  模塊導入須要經歷路徑搜索的過程,路徑搜索就是在你預約義的搜素路徑裏查找你想要導入的模塊

  若是在預約義路徑爲找到,拋出異常(pycharm的特殊功能除外)

 

  自定義模塊b在父級目錄裏(若有特殊須要可使用sys.path.insert()方法)

  解決方式:將當前文件路徑父級目錄的父級目錄添加到sys.path裏

1 import sys,os
2 
3 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
4 
5 import b
6 b.test()

 

4、from-import語句和as

  from module_name import xxx as xxx_xx

 

5、包

  定義:包就是一組模塊的集合。本質就是一個目錄(必須帶有一個__init__.py文件)

  包與目錄的區別:包必須包含一個空文件(也能夠有內容)__init__

 

6、import原理

  導入模塊的本質就是把python文件解釋一遍。

  導入包的本質就是執行該包下的__init__.py文件。

相關文章
相關標籤/搜索