Python 高階 模組

2021-08-01 03:46:54 字數 1686 閱讀 3544

#coding=utf-8

#**分拆多個py檔案,同乙個名字的變數互不影響

#python中包就是資料夾,但是資料夾下必須有乙個__init__.py 檔案才行

'''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 語句。

'''try:

import json

except importerror:

import ******json as json

print json.dumps()

'''python之使用__future__

python的新版本會引入新的功能,但是,實際上這些功能在上乙個老版本中就已經存在了。要「試用」某一新的特性,就可以通過匯入__future__模組的某些功能來實現。

例如,python 2.7的整數除法運算結果仍是整數:

>>> 10 / 3

3但是,python 3.x已經改進了整數的除法運算,「/」除將得到浮點數,「//」除才仍是整數:

>>> 10 / 3

3.3333333333333335

>>> 10 // 3

3要在python 2.7中引入3.x的除法規則,匯入__future__的division:

>>> from __future__ import division

>>> print 10 / 3

3.3333333333333335

當新版本的乙個特性與舊版本不相容時,該特性將會在舊版本中新增到__future__中,以便舊的**能在舊版本中測試新特性。

'''# from __future__ import unicode_literals

# s = 'am i an unicode?'

# print isinstance(s, unicode)

python 高階 模組

模組匯入 模組概念 在 python 中,乙個檔案就是乙個模組 將多個檔案放在乙個資料夾內進行組織管理的形式稱為包 模組匯入方式 import from import 使用模組別名 可以使用 as 在匯入模組後,為模組新增別名,方便程式中引用 模組搜尋順序 模組在搜尋時,根據 sys 模組中定義的 ...

Python高階03 模組

我們之前看到了函式和物件。從本質上來說,它們都是為了更好的組織已經有的程式,以方便重複利用。模組 module 也是為了同樣的目的。在python中,乙個.py檔案就構成乙個模組。通過模組,你可以呼叫其它檔案中的程式。引入模組 我們先寫乙個first.py檔案,內容如下 def laugh prin...

Python高階03 模組

我們之前看到了函式和物件。從本質上來說,它們都是為了更好的組織已經有的程式,以方便重複利用。模組 module 也是為了同樣的目的。在python中,乙個.py檔案就構成乙個模組。通過模組,你可以呼叫其它檔案中的程式。我們先寫乙個first.py檔案,內容如下 def laugh print hah...