模塊一共有三種:python標準庫、第三方模塊、應用程序自定義模塊
模塊之間的相互調用
程序目錄如下所示:
calculate.py
print('ok')
x = 3
def add(x, y):
return x+y
def sub(s, y):
return s-y
bin.py
import calculate
# 解釋器通過搜索路徑找到calculate.py後,
# 將calculate = calculate.py all code
import sys
print(calculate.add(1, 2))
# 搜索路徑 sys.path
print(sys.path)
print(calculate.x)
運行結果
從模塊裏調用方法
# 從模塊裏調用方法
from calculate import add
print(add(1, 4)) # ok 5
from calculate import add, sub
print(sub(3, 6)) # ok -3
調用多個模塊時,可以import calculate,time 用逗號隔開
從一個模塊裏導入所有方法和變量時,用from calculate import *
將某個模塊中的方法導入並修改名稱時,用from calculate import add as plus
爲了避免模塊名衝突,Python又引入了按目錄來組織模塊的方法,成爲包(Packages)。區分文件夾和包的方法是包下面有一個__init__文件。
目錄結構
logger.py
def logger():
print('logging')
bin.py
# import web.logger
# logger.logger() # name 'logger' is not defined
# import的一定是一個模塊
from web import logger
logger.logger() # logging
若包下面還有包,怎麼調用?目錄結構如下
調用web2下的logger模塊
from web.web2 import logger
logger.logger() # logging
from web.web2.logger import logger
logger() # logging
搜索路徑的時候,第一步是在當前路徑下尋找
import web時是執行了web包下的__init__文件,如果__init__裏面有內容,就會被執行。