1,导入模块的的几种方式

模块是什么?
模块实际上就是 以.py为结尾的文件
注意点:自定义的模块尽量不要和系统模块重名

模块内部封装了很多实用的功能,有时在模块外部调用就需要将其导入,导入模块简单划分,实际上就只有两种:

  • import ……
  • from …… import

详细一点划分有五种:

  • 1,improt 模块名
    调用:模块名.功能名
  • 2,import 模块名 as 别名
    调用:别名.功能名
  • 3,from 模块名 import 功能名
    调用:直接功能名
  • 4,from 模块名 import 功能名 as 别名
    调用: 直接拿别名来用
  • 5,from 模块名 import * (用 * 号 一次性导入所有功能)
    调用:直接功能名
    注意点:* 号没法用别名

2,模块的搜索路径

sys.path 返回导入模块时的搜索路径集,是一个list列表。

  • 从上面列出的目录里依次查找要导入的模块文件
  • ’ ’ 表示当前路径
  • 列表中的路径的先后顺序代表了python解释器在搜索模块时的先后顺序

可以添加新的模块:

  • sys.path.append(‘/home/python/xxx’)
  • sys.path.insert(0, ‘/home/python/xxx’) # 可以确保先搜索这个路径
  • 注意点:sys.path.append(path)和sys.path.insert(path)添加的相关路径,在退出交互式环境或者IDE后会自动消失。
In [37]: sys.path.insert(0,"/home/python/xxxx")
In [38]: sys.path
Out[38]:
['/home/python/xxxx','','/usr/bin','/usr/lib/python35.zip','/usr/lib/python3.5','/usr/lib/python3.5/plat-x86_64-linux-gnu','/usr/lib/python3.5/lib-dynload','/usr/local/lib/python3.5/dist-packages','/usr/lib/python3/dist-packages','/usr/lib/python3/dist-packages/IPython/extensions','/home/python/.ipython']

3,重新导入模块

模块被导入后,import module不能重新导入模块,重新导入需用reload

创建一个reload_test.py文件,里面写一个test方法

打开 ipython 终端导入 reload_test 模块

修改reload_test.py 文件中的test方法

再一次import reload_test 模块 然后调用test方法会发现值没变

原因:import 导入模块只会导入一次,因此即使模块被修改了,import也不会重新导入
解决方案

  1. 关闭终端,重新打开,然后再import 导入一次
  2. 用 reload 可以在不关闭终端的情况下重新导入

4,多模块开发时,要注意修改导入模块的值时,from……import 与 import 导入模块的区别

main.py

from send import *
from show import *# 主流程
def main():# 发女朋友send()# 秀恩爱show()if __name__ == '__main__':main()

send.py

#import girl
from girl import *# 发女朋友
def send():print("发女朋友了,翠花是你的了")#girl.have_girl = Truehave_girl = True

show.py

# import girl
from girl import *# 秀恩爱
def show():if have_girl == True:#if girl.have_girl == True:print("我有女朋友了,好开心")else:print("单身贵族")

girl.py

# 共同变量模块have_girl = False #False代表没有女朋友 True代表有女朋友

运行结果:

发女朋友了,翠花是你的了
单身贵族

是不是有点惊讶?结果难道,不应该是这样的吗:

发女朋友了,翠花是你的了
我有女朋友了,好开心

会产生这种情况的原因:
import girl 可以理解为地址的复制,也就是 引用 用来修改值
from girl import * 可以理解成内容的复制,也就是深拷贝,那么深拷贝有什么特点,深拷贝最大的特点就是数据独立。

Python中的导入模块相关推荐

  1. 简述python中怎样导入模块_12 python中模块和包如何导入

    1 模块的三种类型 python标准库 python自带的标准库,比如常用的有os,sys,re,logging等 第三方模块 需要安装第三方模块以后才能导入,比如django 应用程序自定义模块 2 ...

  2. 解决Python中PyCharm导入模块时,模块名下出现红色波浪线的问题

    在博主第一次在PyCharm中导入模块时,模块名下出现红色波浪线,不影响程序执行,但强迫症忍不了 以下是解决办法 Let's do it ... 进入设置,找到Console下的Python Cons ...

  3. Python中import导入模块

    1.import搜索路径 >>> import sys >>> sys.path ['', 'D:\\python\\python3.7.2\\Lib\\idlel ...

  4. python中显示导入模块所有包含函数的方法

    在python应用中我们经常会用到模块,但是有很多人并不十分了解导入模块包含的所有函数,今天给大家介绍一种可以快速显示模块函数的方法,希望对大家有所帮助, 首先我们需要用到一个工具软件 " ...

  5. 简述python中怎样导入模块_Python中导入模块的两种模式,import

    import import pandas import pandas as pd 使用函数方式:.(),或者.() 比如 pandas.read_csv("data/stock.csv&qu ...

  6. Python中import导入上一级目录模块及循环import问题的解决

    Python中import导入上一级目录模块及循环import问题的解决 参考文章: (1)Python中import导入上一级目录模块及循环import问题的解决 (2)https://www.cn ...

  7. 介绍Python中的__future__模块

    这篇文章主要介绍了介绍Python中的__future__模块,__future__模块使得在Python2.x的版本下能够兼容更多的Python3.x的特性,需要的朋友可以参考下 Python的每个 ...

  8. Python中的常用模块

    1.sys模块(内置模块) 在sys模块中定义了一些函数和变量,用来设置和获取系统的信息. # Python中的常用模块:sys模块 import sys sys.path.append('./tes ...

  9. Python中的warnings模块详细阐述

    Python中的warnings模块详细阐述 异常和警告 warnings - 非致命提醒 警告类别 警告过滤器 默认警告过滤器 可用函数 生成警告 使用模式过滤 重复警告 其他消息传递函数 由于在读 ...

最新文章

  1. java字符串 直接能网络传输吗_atitit.二进制数据无损转字符串网络传输
  2. 【Android APT】注解处理器 ( 注解标注 与 初始化方法 )
  3. 经典C语言程序100例之四四
  4. SAP BTP SDK for iOS 介绍
  5. Scrum基础知识体系和感想
  6. oracle 创建日志文件,oracle创建日志文件
  7. 时钟同步及其应用(接上一篇)
  8. python 控件id_查看控件id的工具
  9. 数据挖掘-文本特征提取方法研究
  10. 一个nginx 502问题解决方案
  11. Windows 对外开放端口号
  12. Qt-textEdit 滚顶条设置只读模式
  13. SSH 登录太慢的解决方法
  14. Laravel 生态圈
  15. CefSharp学习笔记
  16. 安装kubernetes k8s v1.16.0 国内环境
  17. Java多线程导出Excel表格, 100w数据量
  18. 触摸屏设置禁用手指缩放机双击放大功能
  19. bit,byte,b,B,KB的整理
  20. Java实习生常规技术面试题每日十题Java基础(五)

热门文章

  1. PS丨PS修改标尺单位
  2. java 支付结果主动通知商户_java实现微信支付结果通知
  3. SpringBoot实训笔记
  4. jstree禁用父节点点击_Jstree选中父节点时禁用子节点也被选中
  5. vue路由跳转写法在html,详解vue 路由跳转四种方式 (带参数)
  6. word双栏/单栏排版问题
  7. Windows10家庭版的账号模糊不清使用而导致问题的修复
  8. 更少的图片标注工作,更棒的分类效果。肺结节诊断论文笔记。
  9. 数据结构与算法入门(follow 左神)
  10. 杀毒软件20年潜规则:穷则思变