模块使用之import
什么是模块?
模块就是一系列功能的集合体,在python中,一个py 文件就是一个模块,比如moudle.py
其中模块名moudle
import time
三种模块
①python自带的
②你自己定义的py文件
③别人写好的模块
内置的和第三方的知道怎么用就可以了
为什么用模块?
①减少重复代码
②组织结构更好
③拿来主义
目的:写程序创造价值,尽可能快的提高编程效率
写个python文件就是定义模块
使用模块
import 导入模块
import spam
导模块说白了就是在运行模块
运行python文件
一运行文件,
只要执行文件,一定先造内置,结果造全局,
首次导入模块发生了三件事
1.创造一个模块的名称空间
2.执行模块对应的文件,将产生的名字,存放于1和名称空间
3.在当前执行文件中拿到一个模块名,该模块名指向1的名称空间
执行文件和被导入模块
(在哪定义的就在,哪调用)
模块中功能的执行,始终以模块自己的名称空间为准
两个完全独立的名称空间
导一次执行一次
x=1
def f1():
pass
import spam
3、为模块起别名 import spam as sm print(sm.money) sm.read1()
from import.....
首次导入模块发生三件事
1.创造一个模块的名称空间
2.执行模块对应的文件,将产生的名字,存放于1和名称空间
3.在当前名称空间中,直接拿到模块中的名字,可以直接使用,不用加任何前缀。
#注意:同import,执行模块中的功能,始终以模块的名称空间为准
不理解
导入第一次已经把内存空间造好了
import spam
强调:之后的导入会直接引用第一次导入的结果。不会重复执行文件
========================================================
========================================================
为模块起别名
根据判断的不同用不同的
engine=input('请输入').strip() if engine=='mysql': import mysql as db elif engine=='oracle': import oracle as db db.parse()
一行导入多个模块尽量不要用,尽量推荐一行一个模块,推荐写成多行
不用加前缀,也是导入,称之为from.....import.......
from spam import money,read1
from ........import........步骤
1.创建一个模块的名称空间
2.执行模块的对应文件,将产生的名字存放于1中的名称空间
提示:from...import与import前两件事情一模一样
3.在当前名称空间中直接拿到模块的名字,可以直接使用,不用加任何前缀
import spam
from spam import money,read1,read2,,change
print(money)
print(read1)
print(read2)
print(change)
#spam.py
print('from the spam.py')
__all__=['money','read1'] # from .. import *
spam.py
print('from the spam.py')
__all__=['money','read1']# from...import*
区分python 文件的两种途径
一个py文件有两种用途
1.当作一个脚本去执行
2.被别人当作模块导入使用
print(_name_)
__name__的值 (文 件)
1.在文件被直接执行的情况下,等于'__main__'
2.在文件被导入的情况下,等于模块名
模块的搜索路径
自定义模块
内置模块
第三方模块
1.找内存模块
2.找内置模块
3.syspath当中找 syspath的第一个路径是当前执行文件
import time
import m1 导入m1的时候m1已经在内存了
m1.f1()
time.sleep(15)
import m1
m1.f1
sys.path的第一个值是当前执行的文件夹
sys.path就是找模块的路径
\windows
有转译符号的意思
sys.path是当前执行文件的文件夹
import sys
sys.path.append(r'所在文件夹的路径)