Python中的模块和包:模块的(动态)导入、__future__模块使用
包的作用
不同的開發人員寫了相同名字的模塊,可以將同名的模塊放入不同的包中進行管理。引用一個完整的模塊代碼如下:
import sqz.util在文件系統當中,包就是一個文件夾,而模塊是一個.py文件。包可以有多級,嵌套多個文件夾,每一級文件夾中必須有一個__init__.py文件。
Python 中模塊的導入
導入系統中自帶模塊math,并訪問函數pow():
import math math.pow(2,3)直接導入模塊中所需要的函數名,避免通過模塊.函數名來調用。
from math import sin, pow, log pow(2, 3) # 直接通過函數名調用為導入的函數取別名,避免不同模塊導入的函數同名產生沖突。
from math import log from logging import log as loggerlog(10) # 等同于math.log(10) logger(10, 'from logging') # 等同于logging.log(10, 'from logging')動態導入模塊
有的時候,兩個不同的模塊提供了相同的功能,比如 StringIO 和 cStringIO 都提供了StringIO這個功能。這是因為Python是動態語言,解釋執行,因此Python代碼運行速度慢。如果要提高Python代碼的運行速度,最簡單的方法是把某些關鍵函數用 C 語言重寫,這樣就能大大提高執行速度。同樣的功能,StringIO 是純Python代碼編寫的,而 cStringIO 部分函數是 C 寫的,因此 cStringIO 運行速度更快。
try:from cStringIO import StringIO # 使用try語句捕獲異常 except ImportError:from StringIO import StringIO上述代碼先嘗試從cStringIO導入,如果失敗了(比如cStringIO沒有被安裝),再嘗試從StringIO導入。這樣,如果cStringIO模塊存在,則我們將獲得更快的運行速度,如果cStringIO不存在,則頂多代碼運行速度會變慢,但不會影響代碼的正常執行。
try 的作用是捕獲錯誤,并在捕獲到指定錯誤時執行 except 語句。
Python中使用 __future__
Python的新版本會引入新的功能,但是,實際上這些功能在上一個老版本中就已經存在了。要“試用”某一新的特性,就可以通過導入__future__模塊的某些功能來實現。
要在Python 2.7中引入3.x的除法規則,導入__future__的division:
from __futrue__ import division print(10/3) # python2.7中是整除除法,結果為3。引入__futrue__新版本中除法后,'/'得到浮點數總結
以上是生活随笔為你收集整理的Python中的模块和包:模块的(动态)导入、__future__模块使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 中的闭包、匿名函数、dec
- 下一篇: Python 面向对象编程:类的创建与初