python的每個模組的包中,都有乙個init.py檔案,有了這個檔案,我們才能匯入這個目錄下的module。
其實,init.py裡面是可以有內容的,我們在匯入乙個包時,實際上匯入了它的init.py檔案。
我們可以在init.py檔案中再匯入其他的包,或者模組。
package1/ __init__.py module1.py module2.py package2/ __init__.py module1.py module2.py
我們可以就這樣匯入乙個包:
from package1 import module1
from package1 import package2
import packag1.module1
import packag1.package2
init.py 控制著包的匯入行為。如果init.py 為空,那麼僅僅匯入包是什麼都做不了的。
>>> import package1
>>> package1.module1
traceback (most recent call last):
file "", line
1, in ?
package1.module1attributeerror: 'module' object has no attribute 'module1'
我們需要在init.py 裡把 module1 預先匯入:
#檔案 __init__.py
import module1
>>>
import package1
>>> package1.module1
'package1.module1'
from
'module.pyc'>
init.py 中還有乙個重要的變數,叫做all。全部匯入
from packagename import *
這時 import 就會把註冊在包init.py 檔案中all列表中的子模組和子包匯入到當前作用域中來。
比如:
#檔案 __init__.py
__all__ = ['module1', 'module2', 'package2']
測試:
>>>
from package1 import *
>>>> module2'package1.module2'
from
'module.pyc'>
init.py 檔案會在匯入時被執行。 python學習比較 init
init py檔案是你在匯入包的時候初始化作用。其中 all sendmsg 的作用是 from ttt import 的時候,能直接使用sendmsg.test 函式,但是import ttt後不能用ttt.sendmsg。在 init 檔案中直接寫上from import sendmsg也能達到...
linux學習筆記 init命令
init程序是所有linux程序的父程序,它的程序號為1,init程序是linux核心引導進行的,是系統的第乙個程序 語法 init 選項 引數 選項 b 不執行相關指令碼而直接進入單使用者模式 s 切換到單使用者模式引數 執行等級 指定linux系統要切換到的執行等級 執行等級 作業系統當前曾在執...
Python學習 物件導向 init
init 方法 class phone 魔術方法之一 名字 def init self print init phone類裡面的方法 call defcall self print price phone1 phone 輸出 init 底層實現流程 1.phone1 phone 利用類建立物件,讀到...