一、調用内置子產品
1. 調用子產品
import time
print(time.ctime())
2. 直接導入ctime()函數
from time import ctime
print(ctime())
3. 導入time子產品下多個函數
4. 導入time子產品下所有函數
此方法适用于會适用到子產品中所有函數,但又不想在每個函數前加time
from time import *
print(ctime())
sleep(2)
print(ctime())
如果導入的函數剛好與自己定義的函數重名,可使用"as"進行重命名
from time import sleep as sys_sleep
def sleep():
print("this is I defined sleep")
sleep()
sys_sleep(2)
二、自定義子產品
- calculator.py
def add(a, b):
return a + b
- test.py
from calculator import add
print(add(4, 5))
補充:當在運作test.py之後,project目錄下多了一個__pycache/calculator.cpython-37.pyc檔案為了提高子產品加載速度,每個子產品都會在__pycache__檔案夾中放置該子產品的預編譯子產品,命名為module.version.pyc
三、跨目錄調用子產品
此種情況,先使用"sys.path"檢視python的搜尋路徑,發現module不在搜尋路徑中,這樣也就導緻,我們無法直接導入calculator檔案
解決:我們隻需要把module檔案夾加入到python的搜尋路徑下即可
1.絕對路徑添加(可移植性差)
import sys
sys.path.append("D:\\python\\demo\\project2\\module")
from calculator import add
print(add(2, 3))
2.相對路徑添加(必須保證相對目錄層級不改動)
import sys
import os
project_path = os.path.dirname(os.path.dirname(abspath(__file__)))
sys.path.append(project_path + 'module')
from calculator import add
print(add(2, 3))
四、編寫自測代碼
calculator.py
def add(a, b):
return a + b
if __name__ == '__main__':
# 測試代碼
c = add(3, 5)
print(c)