模块是指在编程中直接导入另一个已经含有完整代码功能的文件的行为,用于方便节省代码操作。

模块的分类

1.内置模块

python解释器自带的模块,无需编辑

import time
time.sleep(10)

2.自定义模块

由自己编辑的模块,例如其他的py文件,都可以作为模块导入到另一文件中

3.第三方模块

网络上他人写好的模块,在下载之后导入即可使用

模块的具体形式

模块的文件不仅仅可以是py文件,因为python的兼容性,也可以使用c语言、c++、DLL等不同的文件格式。

模块的导入

模块导入有两种方式

1.import

import 模块名

模块名是文件的名字,不用加文件的后缀名,但要注意作为模块导入的文件名只能是英文数字下划线,不能出现中文等其他不允许的字符。

使用import导入会把模块中的所有变量、函数等全部导入到文件中,具体效果是创造一个与模块同名的名称空间,获取时指向该名称空间来获取内容。

2.from......import

from 模块名 import 变量/函数名

使用from......import导入时只会导入import后面的变量/函数名,也不会产生一个名称空间,具体效果是直接把导入内容进行赋值操作。

模块的使用

1.import

使用import导入之后,使用模块名加点就可以使用模块中的内容了,与使用内置方法相同

money = 10##################假设以上是另一个模块文件,名字是md#########################money = 100
import mdprint(money) # 100print(md.money) # 10

import导入之后,为了区分属于模块的部分需要添加模块名加点才能使用,不会覆盖文件内已经存在的变量名。

import导入同一模块只能导入一次,后续导入已经导入的模块相关代码会无效。

import time
# 导入成功之后,后续导入会无效化
import time
import time

2.from......import

使用from......import导入之后,直接使用导入的变量名就能使用了。

money = 100####################假设以上是另一个模块,名字是md################
money = 10
from md import moneyprint(money) # 100money = 10
print(money) # 10

from......import导入的变量赋值会直接覆盖原本的值,导入之后也可以再次重新赋值。

from....import也可以批量导入,使用逗号隔开每个变量

from md import a,b,c,d

也可以使用*代表所有变量

from md import *

在模块代码文件中,可以使用__all__ = [变量名]来控制哪些变量可以被导入和不被导入

__all__ = ['a'] #变量a不会被模块导入

两种导入方式的优缺点

优点 缺点
import 通过模块名来取值,不会和现有的名字冲突 模块代码量大时导入占用内存较大
from......import 需要什么就导入什么,命名方便使用 容易覆盖现有的变量内容

循环导入

import md2print('来自模块1')###############################import md1print('来自模块2')

循环导入类似于两个函数循环调用,但不同的是循环导入容易出现报错,因为循环导入可能会出现模块还没准备好就导入,造成代码缺失的问题。

判断文件类型

当开始导入模块之后,运行的文件数量就会多了起来,有时候会需要判断当前运行的是哪个文件,此时可以使用__name__来判断。

if __name__ = '__main__':#确认是对应文件后执行的代码

条件判断的实际意思是:

当前的文件是执行文件时,__name__的返回值是__main__

当前文件是被导入文件时,__name__的返回值是模块名

模块查找顺序

当文件量增多之后,系统在执行代码时寻找一个变量名的区域会逐渐扩大,因为系统查找变量名存在一个默认的顺序。

1.文件的内存空间

2.文件的内置空间

3.系统的环境变量路径

即优先在已经创建好的内存空间中寻找人为创建的模块,找不到再从系统内置空间中寻找系统默认设置的模块,再从环境变量路径下的文件进行寻找。

python模块化导入相关推荐

  1. python中导入模块用什么命令_Python导入模块的技巧

    作为使用Python的开发者,我们一开始学习的内容之一就是如何导入Python的各种模块或库.但是我们注意到,那些经常使用Python的用户并不一定都知道Python的导入机制其实非常灵活.在本文中, ...

  2. code block怎样导入整个文件夹_一文就能get!带你了解Python模块导入的真相,拿走不谢...

    前两天和大家探讨了Python的模块化编程,相信大家已经对于Python的模块定义啦.模块的加载啦都了如指掌啦,今天呢,咱们就一起来聊聊Python模块导入的本质吧,相信大家看完这次的东东,就真的能够 ...

  3. win10caffe-GPU环境配置+mnist手写体训练以及python接口导入详细教程(一步成功)

    什么是caffe Caffe是一个深度学习框架,具有表达力强.速度快和模块化的思想,由伯克利视觉学习中心(BVLC)和社区贡献者开发.Yangqing Jia在加州大学伯克利分校攻读博士期间创建了这个 ...

  4. 【转】python包导入细节

    [转]python包导入细节 包导入格式 导入模块时除了使用模块名进行导入,还可以使用目录名进行导入.例如,在sys.path路径下,有一个dir1/dir2/mod.py模块,那么在任意位置处都可以 ...

  5. python使用spark_apache spark - 在python中导入pyspark

    apache spark - 在python中导入pyspark 这是另一个从未回答过的论坛上的别人问题的副本,所以我想我会在这里重新提问,因为我有同样的问题. (见[http://geekple.c ...

  6. python csv库,Python 中导入csv数据的三种方法

    Python 中导入csv数据的三种方法,具体内容如下所示: 1.通过标准的Python库导入CSV文件: Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文 ...

  7. python怎么导入视频-python怎么导入数据

    通过标准的Python库导入CSV文件: Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组, ...

  8. python导入csv文件-python如何导入csv文件格式

    1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...

  9. python导入csv文件-python如何导入csv

    1.通过标准的Python库导入CSV文件 Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文件.当CSV文件被读入后,可以利用这些数据生成一个NumPy数组 ...

最新文章

  1. Repeater嵌套
  2. java 对第三方的异常_Java第三方API调用打开文件方法时抛出异常
  3. linux切换root报错,Linux用户切换到root后运行图形程序报错(*GLib-GIO-CRITICAL **)
  4. XP退役对整个互联网安全的问题
  5. 拾遗----javascript一些实用方法
  6. PHP中的get_defined_funciton和get_defined_vars
  7. 马里兰大学calce电池循环测试数据集_千次循环,全程1.5V恒压,紫米新一代充电锂电池套装上手体验...
  8. crontab shell 每5秒执行_视频 |全球最快全自动播种分拣机器人,每5秒处理一件货物...
  9. “金融与安全大数据”专题导读
  10. (转)shiro权限框架详解02-权限理论介绍
  11. c语言设计底层,【学习小总结】C语言的底层开发
  12. 人工智能感知技术是机器人应用支撑技术之一
  13. c语言饭卡服务程序设计思路,C语言设计—饭卡管理程序.doc
  14. 20191228_Python语言课程设计
  15. 我的美丽天使(My Fair Angel)全剧情攻略
  16. Juniper SRX210恢复密码过程
  17. mac上面的文件分割与合并
  18. iPhone XS 陷“充电门”:待机状态拒绝充电
  19. 【面试宝典】Mysql面试题大全
  20. MySQL 的统计直方图

热门文章

  1. 一个简单的CORBA例子
  2. 我们应不应该继续学习python
  3. rm -rf 删除文件 恢复
  4. php:php时区的三种设置方式
  5. 消防水监测系统解决方案
  6. SuSe Linux防火墙配置指定IP或IP段可访问
  7. 对 input 千位分割
  8. opencv-python 对极几何
  9. 我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下: 鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
  10. 记一个简单Android图书阅读器的制作过程