python基礎 包的匯入和 init

2022-02-07 17:48:24 字數 1591 閱讀 9883

– src

|– mod.py

|– test.py

若在程式test.py中匯入模組mod, 則直接使用

import mod

from mod import *

– src

|– mod.py

|– lib

| |– mod2.py

|– test.py

from lib.mod2 import *

import lib.mod2

目錄結構如下:

– src

|– mod.py

|– lib

| |– mod2.py

|– sub

| |– test2.py

import sys

import mod

import lib.mod2

在python模組的每乙個包中,都有乙個__init__.py檔案(這個檔案定義了包的屬性和方法)然後是一些模組檔案和子目錄,假如子目錄中也有__init__.py 那麼它就是這個包的子包了。當你將乙個包作為模組匯入(比如從 xml 匯入 dom )的時候,實際上匯入了它的__init__.py 檔案。

乙個包是乙個帶有特殊檔案 __init__.py 的目錄。__init__.py 檔案定義了包的屬性和方法。其實它可以什麼也不定義;可以只是乙個空檔案,但是必須存在。如果 __init__.py 不存在,這個目錄就僅僅是乙個目錄,而不是乙個包,它就不能被匯入或者包含其它的模組和巢狀包。

__init__.py 中還有乙個重要的變數,叫做__all__。

如果此時目錄如下

– src

|– mod.py

|– lib

| |– mod2.py

| |– mod3.py

| |– sub

| |– | |– mod3.py

我們有時會使出一招「全部匯入」,也就是這樣:

from lib import *

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

#檔案__init__.py

__all__ = ["mod2", "mod3", "sub"]

總結:

__init__.py的作用:

順便提一下

如果有任何問題,你可以在這裡找到我 ,軟體測試交流qq群,209092584

python包的相對匯入和絕對匯入

絕對匯入 從要匯入檔案的頂級包開始寫起 print package 列印出該檔案所在包的路徑以下面所示專案檔案結構為例 頂級包一般是專案資料夾中最上層的包,比如說a,b中的模組的頂級包就分別是a,b a1中 print package a b1中 print package b bb1中 print...

python 包的匯入

1,包 定義 把解決一類問題的模組放在同乙個資料夾裡 匯入語法 在import from.import匯入語句中 而不是在使用時 遇到帶點的 本質 就是乙個包含 init py檔案的目錄,在py2中,必須有 init py檔案,py3沒有也可以執行。包只是模組的一種形式而已,包即模組,是為了匯入方便...

30 python匯入包和子包

我們先建立乙個包,所謂的包就是建立乙個目錄,裡面有乙個 init py檔案。我們在common目錄下建立乙個mypack的目錄,在該目錄裡面建立下列3個.py檔案 mypack init py print mypack init def init print mypack init function...