模塊

funs.py文件

def fun1():
    print("execute fun1")
def fun2():
    print("execute fun2")
def _fun3():
    print("execute _fun3")


if __name__=='__main__':
    import sys
    print(sys.argv)

執行:
這裏寫圖片描述

導入模塊

只導入模塊名;
方法調用:module.function

import funs       #只導入模塊名
funs.fun1()        #方法調用:module.function

導入部分方法/變量;不導入模塊名
方法直接通過方法名調用

from funs import fun1,fun2     #導入部分方法/變量;不導入模塊名
fun1()            #方法直接通過方法名調用

導入模塊中所有方法和變量
前面帶下劃線的方法不被導入

from funs import *        #導入模塊中所有方法和變量
fun1()
_fun3()           #前面帶下劃線的方法不被導入。報錯NameError: name '_fun3' is not defined

修改導入的模塊名爲f

import funs as f     #修改導入的模塊名爲f
f.fun1()
funs.fun1()           #NameError: name 'funs' is not defined
from funs import fun1 as f 
f()

說明

  • 解釋器中每個模塊只被導入一次,要重新導入: import importlib; importlib.reload(modulename).
  • import導入模塊,解釋器先查找內建模塊,然後查找sys.path路徑(最先是腳本所在路徑)

sys.path

import sys
print(sys.path)     #解釋器查找模塊的路徑
sys.path.append("H:\\11\\22")
print(sys.path)

這裏寫圖片描述

dir()

dir(moudle)獲取模塊中定義的名稱
import funs,sys
print(dir(funs))
print(dir(sys))

輸出:
這裏寫圖片描述

dir()獲取當前可用名稱
a="a"
import funs
print(dir())

這裏寫圖片描述

獲取內建方法的名稱
import builtins
print(dir(builtins))

文件結構:

pack1
    __init__.py
    pack2
        __init__.py
        module2.py
        pack21
            __init__.py
            module1.py
        
    pack3

導入單個模塊

import  pack1.pack2.module2      #導入單個模塊
pack1.pack2.module2.fun1()       #調用

導入單個模塊

# from pack1.pack2 import module2
# module2.fun1()

導入方法或變量

from pack1.pack2.module2 import fun1
fun1()

from package import *


相對路徑 模塊中使用

from . import echo
from … import formats
from …filters import equalizer

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章