python 學習筆記 init

2021-07-25 15:36:02 字數 1589 閱讀 4750

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 利用類建立物件,讀到...