python模組匯入import詳解 md

2021-08-28 11:24:24 字數 2579 閱讀 6257

模組就好比是工具包,要想使用這個工具包中的工具(就好比函式),就需要匯入這個

模組。

模組的本質就是乙個.py檔案,裡面包含已經封裝好的類、方法等。模組匯入也即是使用這個py檔案中的變數、方法。

**執行到模組匯入位置時,會預先載入(執行)匯入的模組。

注意:使用from匯入變數,而那些變數碰巧和作用域中現有的變數同名,本地變數就會被悄悄地覆蓋掉

例如:時間模組time帶有多個時間方面的函式,而random模組主要是實現隨機功能。

python語言中主要有三種方式

有5種形式:

import 模組(import 模組.方法 錯誤)

import 模組 as 別名

from 模組 import 方法(變數)

from 模組 import 方法(變數) as 別名

from 模組 import *

注意:模組名一般為檔名,且符合python識別符號規則(由數字字母下劃線組成,數字不能開頭)

import time

a = time.time(

)print

(a)

# 引數為模組名

module =

__import__

("time"

)print

(module.time(

))

# 引數一為模組物件,引數二為模組方法

module_fun =

getattr

(time,

'time'

)print

(module_fun(

))

# 框架思想

import sys

action_list = sys.argv # 得到乙個列表

moudle =

__import__

(action_list[1]

)fun =

getattr

(moudle, action_list[2]

)print

(fun(

))

當你匯入乙個模組,python解析器對模組位置的搜尋順序如下

import sys

print

(sys.path)

#結果['',

#當前路徑

'/home/yz/desktop/test'

,#專案路徑

'/usr/lib/python35.zip'

,'/usr/lib/python3.5'

,'/usr/lib/python3.5/plat-x86_64-linux-gnu'

,'/usr/lib/python3.5/lib-dynload'

,'/usr/local/lib/python3.5/dist-packages'

,'/usr/lib/python3/dist-packages'

]

import random

random.__file__

#結果'/usr/lib/python3.5/random.py'

注意:路徑的修改只對當前檔案有效

在終端命令列之中,a匯入模組b,當b修改之後,a仍然使用b被修改之前的**。

這個時候就需要重新匯入。使用reload

form importlib import reload

reload(模組名)

「import 模組」屬於淺拷貝,如果a修改了匯入的b變數,此時c匯入該b變數還是未修改的b.

清楚模組與包的區別!

1.模組:單個的py檔案

2.包:含有__init__.py檔案的資料夾。裡面一般有多個.py檔案。

注意:如果包的__init__.py檔案是空的,則 「from 包 import * 」 是無效的。

對於 『from 模組 import *』:a檔案裡有乙個列表__all__=[ ],那麼其它檔案只能匯入a檔案中列表__all__的元素限定的變數。

_name_

if __name__ ==

'__main__'

在a檔案中,其屬性__name__的值是_main_;而在其它檔案中,匯入的a.__name__的值是a的檔案(模組)名。

Python包 模組和包匯入詳解(import)

1.模組 module 1.1 模組定義 通常模組為乙個.py檔案,其他可作為module的檔案型別還有 pyo pyc pyd so dll module 可看作乙個工具類,可共用或者隱藏 細節,將相關 放置在乙個module以便讓 更好用 易懂,讓coder重點放在高層邏輯上。module能定義...

Python學習之路 模組詳解及import本質上

1.定義 模組 用來從邏輯上組織python 變數,函式,類,邏輯 實現乙個功能 本質就是.py結尾的python檔案。檔名 test.py,對應的模組名 test 包 用來從邏輯上組織模組的,本質是乙個資料夾或者目錄 必須帶乙個 init py檔案 2.匯入方法 import module nam...

python 匯入模組

最近開始學習python,遇到一些匯入模組的問題,花了幾分鐘終於琢磨明白了,給初學者介紹幾種型別 一 test sys test1 nv1.py nv2.py nv1.py 如下 classdog defadd self a,b self.a a self.b b c self.a self.b r...