python调用模块1
一、调用模块或函数的方法
1、调用模块的常规用法
a、import 模块名
b、from 模块名 import 函数名字
b、import 模块名 as 新名字
import math from math import sqrt import math as shuxue print('调用math.sqrt:%0.4f\t'%math.sqrt(2)) print('直接调用sqrt:%.4f\t'%sqrt(2)) a = shuxue.sqrt(2) print('直接调用shuxue.sqrt:%.4f\t'%a) #执行结果 调用math.sqrt:1.4142 直接调用sqrt:1.4142 直接调用shuxue.sqrt:1.4142
1、自己编写的模块
a、import sys #导入sys模块
b、print(sys.path) #输出当前模块查找路径(列表形式)
c、sys.path.append(Apath) #添加Apath为模块查找路径
#模块文件 #文件名称:eg8_2_1.py #被导入时会执行,输出信息 print('导入的测试模块的输出') name = 'module_test' #定义变量 def m_t_pr(): #模块中的函数定义 print('模块module_test中m_t_pr()函数') #存放在一个路径下 #调用自己编写的模块 #文件名:eg8_2_2.py import sys sys.path.append('G:\\Python练习') import eg8_2_1 #导入eg8_2_1模块 eg8_2_1.m_t_pr() #调用导入eg8_2_1模块的m_t_pr()函数 print('使用eg8_2_1模块中的变量:',eg8_2_1.name) #使用导入模块中的变量 #执行结果 导入的测试模块的输出 模块module_test中m_t_pr()函数 使用eg8_2_1模块中的变量: module_test
3、__pycache__
虽然python是脚本语言,但python可以将程序编译成字节码的形式,对于模块,Python总是在第一次调用后将其编译成字节码的形式,以提程序的启动速度
eg8_2_1.cpython-39就是Python把eg8_2_1.py编译成字节码的文件
import sys sys.path.append('G:\\Python练习\\usertest') import eg8_2_1 #导入eg8_2_1模块 import py_compile #导入py_compile模块 eg8_2_1.m_t_pr() py_compile.compile('eg8_2_1.py','eg8_2_1.pyc') #编译eg8_2_1.py文件为eg8_2_1.pyc #py_compile.compile('eg8_2_1.py') #生成一个__pycache__的文件,文件夹下包含eg8_2_1.pyc文件
4、独立运行的模块
每个Python程序运行时都有一个__name__属性,在程序中通过对__name__属性值的判断,可以让程序在作为导入模块和独立运行都可以同时正常运行。
如果程序作为模块被导入,则其__name__属性被设置为模块名,如果程序独立运行,则其__name__属性被设置为“__main__”。因此可以通过__name__属性来判断程序运行状态
#模块文件 #文件名称eg8.2.4.py print('导入的测试模块的输出') #被导入时会执行,输出信息 name = 'module_test' #定义变量 def m_t_pr(): #模块中的函数定义 print('模块module_test中m_t_pr()函数') if __name__ == '__main__': #如果模块没被调用,if为Ture m_t_pr() print(name)
一般来说,将模块的额主要功能以实例的形式放在这个if语句中,可以方便测试模块是否能正常运行,或者发现模块的错误