Python模組包中 init

2021-07-06 03:10:37 字數 975 閱讀 1365

原文:  

本人有刪改 

參考  

python    packages   __init__.py

包的精髓在 __init__.py 這個檔案

__init__.py 檔案: 

__init__.py 控制著包的匯入行為。假如 __init__.py 為空,那麼僅僅匯入包是什麼都做不了的。 

>>> import package1 

>>> package1.module1 

traceback (most recent call last): 

file "", line 1, in ? 

package1.module1 

attributeerror: 'module' object has no attribute 'module1' 

我們需要在 __init__.py 裡把 module1 預先匯入: 

#檔案 __init__.py 

import module1 

測試: 

>>> import package1 

>>> package1.module1 

__init__.py 中還有乙個重要的變數,叫做 __all__。我們有時會使出一招「全部匯入」,也就是這樣: 

from packagename import * 

這時 import 就會把註冊在包 __init__.py 檔案中 __all__ 列表中的子模組和子包匯入到當前作用域中來。比如: 

#檔案 __init__.py 

__all__ = ['module1', 'module2', 'package2'] 

測試: 

>>>from package1 import * 

>>> module2 

__init__.py 檔案會在匯入時被執行。 

其他參考: 

Python模組包中 init

在eclipse中用pydev開發python指令碼時,我遇到了乙個這樣的現象,當我新建乙個pydev package時,總會自動地生成乙個空的 init py檔案,因為是python新手,所以很不了解這個空檔案的作用是什麼,因為沒有什麼東西可寫在這裡,所以我直接把這個檔案給刪掉了,結果我的包圖示自...

Python模組包中 init

在eclipse中用pydev開發python指令碼時,我遇到了乙個這樣的現象,當我新建乙個pydev package時,總會自動地生成乙個空的 init py檔案,因為是python新手,所以很不了解這個空檔案的作用是什麼,因為沒有什麼東西可寫在這裡,所以我直接把這個檔案給刪掉了,結果我的包圖示自...

Python模組包中 init

在eclipse中用pydev開發python指令碼時,我遇到了乙個這樣的現象,當我新建乙個pydev package時,總會自動地生成乙個空的 init py檔案,因為是python新手,所以很不了解這個空檔案的作用是什麼,因為沒有什麼東西可寫在這裡,所以我直接把這個 文 件給刪掉了,結果我的包圖...