1. 程式人生 > >python 入門學習---模組匯入三種方式及中文註釋

python 入門學習---模組匯入三種方式及中文註釋

from modname import funcname 
from modname import fa, fb, fc 
或者  from modname import * 
與第1種方法的區別:funcname 被直接匯入到本地名字空間去了,所以它可以直接使用,而不需要加上模組名的限定 
* 表示,該模組的所有公共物件(public objects)都被匯入到 當前的名稱空間,也就是任何只要不是以”_”開始的東西都會被匯入。 
modname沒有被定義,所以modname.funcname這種方式不起作用。並且,如果funcname如果已經被定義,它會被新版本(該匯入模組中的版本)所替代。如果funcname被改成指向其他物件,modname不能不會覺察到。 
建議:

1)如果你要經常訪問模組的屬性和方法,且不想一遍又一遍地敲入模組名,使用 from module import 
2)如果你想要有選擇地匯入某些屬性和方法,而不想要其它的,使用 from module import 
3)如果模組包含的屬性和方法與你的某個模組同名,你必須使用import module來避免名字衝突 
4)儘量少用 from module import * ,因為判定一個特殊的函式或屬性是從哪來的有些困難,並且會造成除錯和重構都更困難。 

#!/bin/env python
#coding:gbk
#coding:utf-8
"利用sys模組匯入指定Python檔案的路徑"
import sys
sys.path.append("./")
"另外一種匯入Python檔案"
from m import plus

print plus(12,3)

print help(plus)

3、使用內斂函式__import__

除了前面兩種使用import關鍵字的方法以外,我們還可以使用內建函式 __import__() 來匯入 module。兩者的區別是,import 後面跟的必須是一個型別(type),而__import__() 的引數是一個字串,這個字串可能來自配置檔案,也可能是某個表示式計算結果。例如 
mymodule = __import__ (’module_name’) 
附註: 
1)模組的內容都放在一個模組檔案中,如 mymodule 的內容應該放在PYTHONPATH 目錄下的一個mymodule.py中,C實現的除外 
2)包可以將幾個模組名稱空間組織起來, 如A.b 就表示在包A中的一個子模組b