python模塊調用問題說明

一、調用內置模塊

1. 調用模塊

import time
print(time.ctime())

2. 直接導入ctime()函數

from time import ctime
print(ctime())

3. 導入time模塊下多個函數

from time import *

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)

二、自定義模塊

在這裏插入圖片描述

  1. calculator.py
def add(a, b):
    return a + b
  1. 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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章