1. 程式人生 > >8.1、包,__init__.py,

8.1、包,__init__.py,

img erl bs4 pos 化工 lar es2017 add inner


包:

  • 為了組織好模塊,將多個模塊組合為一個包,所以包用於存放python模塊
  • 包通常是一個文件夾,當文件夾當作包使用時,文件夾需要包含__init__.py文件
  • __init__.py的內容可以為空,一般用來進行包的某些初始化工作或者設置__all__值,__all__是在from ... import * 語句使用的,__all__中定義的模塊將在from ... import * 中全部導入

目錄結構:技術分享圖片

test1代碼:技術分享圖片

package_test.__init__.py代碼:技術分享圖片

inner代碼:技術分享圖片

導入包的test1模塊,以及子包的inner模塊:

from package_test import
test1 from package_test.child_package import inner -----------------運行結果: run in package_test.__init__.py import test1 done run in inner


__init__.py的常見用途:

  • 批量導入我們所需要的模塊

__init__代碼:

技術分享圖片

b導入package_test的代碼:

import package_test

print(package_test.re,package_test.bs4)


--------------
運行結果:
<module re from I:\\python3\\lib\\re.py> <module bs4 from I:\\python3\\lib\\site-packages\\bs4\\__init__.py>
  • __all__,用來將模塊全部導入,與上面不同的是,__all__只能導入包中有的模塊:

目錄結構:

技術分享圖片

__init__代碼:

__all__=[test1]

b導入package_test的代碼:

from package_test import *


8.1、包,__init__.py,