一、调用内置模块
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)
二、自定义模块
- 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)