Python模块介绍及导入方式


前言

Python语言

  Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

 

最早起源于Linux运维,胶水语言,掉包侠(贬义词>>>褒义词)

1.什么是模块

一切功能的集合体

2.为什么要用模块

为了提升开发的效率

3.模块的三种来源

1.内置的(Python解释器自带能够直接导入使用)

2.第三方模块(别人写好的发布在网络上,需要下载后使用)

3.自定义的(自己写的

4.模块的四种表现形式

1.使用Python编写的代码(.py文件)

2.已被编译为共享库或DLL的C或C++扩展

3.包好一组模块的包(文件夹) #包其实就是多个py文件的集合,包里面通常含有一个_ _init_ _.py文件

4.使用c编写并链接到Python解释器的内置模块

二.import句式

import 模块名  #导入py文件模块 文件后缀一定不要加

多次导入相同的模块 只会执行一次,首次导入模块发生了哪几件事情?

1.运行导入文件产生该文件的全局名称空间

2.运行模块文件

3.产生模块文件全局名称空间,运行模块文件内代码,将产生的名字全部存档于模块文件全局名称空间

import句式导入模块之后

通过模块的点名的方式可以直接使用到模块中所有的名字 并且肯定不会产生冲突(指名道姓)

三.from ...import...

from ...import... 多次导入也只会导入一次

1.先产生执行文件的全局名称空间

2.执行模块文件 产生模块的全局名称空间

3.将模块中执行之后产生的名字全部存档于模块名称空间中

4.在执行文件中有一个名字执行模块名称空间中名字指向的值

for...import...指名道姓的导入某个名字

在使用的时候直接写名字即可,但是当前名称空间有相同名字的时候就会产生冲突,使用的就变成了当前名称空间。

四.导入模块扩展用法

1.起别名

就可以给模块名起别名也可以给模块中的某个名字起别名,例如:

1     import mdddddddd as m
2     from mddddddd import name as n

2.连续导入

  import 模块名1,模块名2

可以连续导入多个模块,但是只有当多个模块功能类似于或者属于同一个系列

  import 模块1

  import 模块2

from 模块名1 import 名字1,名字2,名字3

如果功能不同并且不属于一个系列,那么推荐分行导入

3.通用导入

from 模块名 import *  将模块中所有的名字全部导入(*表示所有)

_ _all_ _用来指定可以被导入使用的名字

五.判断文件类型

判断py文件是作为模块文件还是执行文件

_ _name_ _当文件是执行文件的时候会返回_ _main_ _

如果文件是被当做模块导入则返回文件名(模块名)

if _ _name_ _=='_ _main_ _':
  read1()

六.循环导入

以后我们在导入模块的时候如果出现了循环导入的情况 说明你程序设计的不合理
记住在以后的编程生涯中不允许出现循环导入的现象!!!

一错再错

1.调换顺序

将彼此导入的句式放在代码的最后

2.函数形式

将导入的句式放入函数体代码 等待所有的名字加载完毕之后再调用

七.模块的导入顺序

1.先从内存中查找

2.再去内置模块中查找

3.最后去sys.path系统路径查找(自定义模块)

如果都没有查找到报错

以后再给py文件命名的时候尽量不要与内置函数模块名字冲突

1 # 当某个自定义模块查找不到的时候解决方案
2 1.自己手动将该模块所在的路径添加到sys.path中
3 import sys
4 sys.path.append(r'D:\py20\day18\aaa')
5 2.from...import...句式
6 from 文件夹名称.文件夹名称 import 模块名
7 from 文件夹名称.模块名称 import 名字

相关