python模組匯入呼叫 Python之匯入模組

2021-10-19 21:37:33 字數 1789 閱讀 9521

要使用乙個模組,我們必須首先匯入該模組。python使用import語句匯入乙個模組。例如,匯入系統自帶的模組math:

import math

你可以認為math就是乙個指向已匯入模組的變數,通過該變數,我們可以訪問math模組中所定義的所有公開的函式、變數和類:

math.pow(2, 0.5) # pow是函式

1.4142135623730951

math.pi # pi是變數

3.141592653589793

如果我們只希望匯入用到的math模組的某幾個函式,而不是所有函式,可以用下面的語句:

from math import pow, sin, log

這樣,可以直接引用 pow, sin, log 這3個函式,但math的其他函式沒有匯入進來:

pow(2, 10)

1024.0

sin(3.14)

0.0015926529164868282

如果遇到名字衝突怎麼辦?比如math模組有乙個log函式,logging模組也有乙個log函式,如果同時使用,如何解決名字衝突?

如果使用import匯入模組名,由於必須通過模組名引用函式名,因此不存在衝突:

import math, logging

print math.log(10) # 呼叫的是math的log函式

logging.log(10, 'something') # 呼叫的是logging的log函式

如果使用 from...import 匯入 log 函式,勢必引起衝突。這時,可以給函式起個「別名」來避免衝突:

from math import log

from logging import log as logger # logging的log現在變成了logger

print log(10) # 呼叫的是math的log

logger(10, 'import from logging') # 呼叫的是logging的log

(三)python中動態匯入模組

如果匯入的模組不存在,python直譯器會報 importerror 錯誤:

import something

traceback (most recent call last):

file "", line 1, in

importerror: no module named something

有的時候,兩個不同的模組提供了相同的功能,比如 stringio 和 cstringio 都提供了stringio這個功能。

因為python是動態語言,解釋執行,因此python**執行速度慢。

如果要提高python**的執行速度,最簡單的方法是把某些關鍵函式用 c 語言重寫,這樣就能大大提高執行速度。

同樣的功能,stringio 是純python**編寫的,而 cstringio 部分函式是 c 寫的,因此 cstringio 執行速度更快。

利用importerror錯誤,我們經常在python中動態匯入模組:

try:

from cstringio import stringio

except importerror:

from stringio import stringio

上述**先嘗試從cstringio匯入,如果失敗了(比如cstringio沒有被安裝),再嘗試從stringio匯入。這樣,如果cstringio模組存在,則我們將獲得更快的執行速度,如果cstringio不存在,則頂多**執行速度會變慢,但不會影響**的正常執行。

try 的作用是捕獲錯誤,並在捕獲到指定錯誤時執行 except 語句。

模組匯入的呼叫

txt解釋模組 新建package時會有乙個init新檔案 pip安裝庫檔案當import匯入無效時 模組一共有三種 標準庫 第三方 自定義模組如何呼叫 import 1 執行對應檔案 2 引入變數名 import cal from cal import cal from day import ca...

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...

python匯入模組

1 模組的定義 模組定義 用來邏輯上組織python 變數 函式 類 邏輯 目的是 實現乙個功能 本質就是.py結尾的python檔案。補充 包的定義 用來從邏輯組織模組的,本質就是乙個目錄 必須帶有乙個 init py檔案 2 匯入方法 匯入模組的方法 1.import module name 匯...